我有一个django表单,它收集用户响应 . 我也有张量流句分类模型 . 将这两者结合在一起的最佳/标准方法是什么?细节:
对来自烂番茄的电影评论数据培训了
张量流模型 .
每次在我的响应模型中创建一个新行时,我希望张量流代码对其进行分类(或 - ) .
基本上我有一个django项目目录和两个.py文件用于分类 . 在继续自己之前,我想知道将机器学习算法实现到Web应用程序的标准方法是什么 .
如果您可以建议教程或回购,那就太棒了 . 谢谢 !
如果您 don't need the classification result from the ML code to pass immediately to the user (例如,作为对提交的相同POST请求的响应),则您始终可以将分类作业排队以在后台运行,或者甚至是具有更多CPU /内存资源的其他服务器(例如,使用django-background-tasks或Celery)
例如,排队的任务将填充该字段为空白(尚未分类)的数据库行上的字段 UserResponse.class_name (正面,负面)
UserResponse.class_name
如果ML代码很慢且 want to return that result to the user 一旦可用,您就可以使用上述异步方法,并与实时通知配对(例如socket.io到浏览器(this can be triggered from the queued task))
如果ML执行时间太长以至于可能在下面描述的同步方法中超时HTTP请求,则这变得必要 .
如果您需要立即返回分类结果,并且ML分类为 **fast enough *** ,则可以在HTTP请求 - 响应周期内执行此操作(POST请求在ML代码完成后同步返回)
*这里足够快意味着它不会超时HTTP请求/响应,并且用户不会失去耐心 .
好吧,我必须自己开发相同的解决方案 . 就我而言,我使用了Theano . 如果您使用的是tensorflow或theano,则可以保存已构建的模型 . 首先,使用训练数据集训练模型,然后使用您选择的库保存模型 . 您需要在django Web应用程序中仅部署处理预测的代码部分 . 因此,使用简单的POST,您可以足够快地向用户提供您的句子的预测类 . 此外,如果您认为需要,您可以定期运行作业,使用新的输入模式再次训练您的模型并再次保存 .
2 回答
异步处理
如果您 don't need the classification result from the ML code to pass immediately to the user (例如,作为对提交的相同POST请求的响应),则您始终可以将分类作业排队以在后台运行,或者甚至是具有更多CPU /内存资源的其他服务器(例如,使用django-background-tasks或Celery)
例如,排队的任务将填充该字段为空白(尚未分类)的数据库行上的字段
UserResponse.class_name
(正面,负面)实时通知
如果ML代码很慢且 want to return that result to the user 一旦可用,您就可以使用上述异步方法,并与实时通知配对(例如socket.io到浏览器(this can be triggered from the queued task))
如果ML执行时间太长以至于可能在下面描述的同步方法中超时HTTP请求,则这变得必要 .
同步处理,如果ML代码不是CPU密集型(足够快)
如果您需要立即返回分类结果,并且ML分类为 **fast enough *** ,则可以在HTTP请求 - 响应周期内执行此操作(POST请求在ML代码完成后同步返回)
*这里足够快意味着它不会超时HTTP请求/响应,并且用户不会失去耐心 .
好吧,我必须自己开发相同的解决方案 . 就我而言,我使用了Theano . 如果您使用的是tensorflow或theano,则可以保存已构建的模型 . 首先,使用训练数据集训练模型,然后使用您选择的库保存模型 . 您需要在django Web应用程序中仅部署处理预测的代码部分 . 因此,使用简单的POST,您可以足够快地向用户提供您的句子的预测类 . 此外,如果您认为需要,您可以定期运行作业,使用新的输入模式再次训练您的模型并再次保存 .