Django 中的机器学习(tensorflow / sklearn)?
Machine Learning (tensorflow / sklearn) in Django?
我有一个 Django 表单,它正在收集用户响应。我还有一个tensorflow句子分类模型。 best/standard 将这两者放在一起的方法是什么。
详情:
- tensorflow 模型是根据烂番茄的电影评论数据训练的。
- 每次在我的响应模型中创建一个新行,我都希望 tensorflow 代码对其进行分类(+ 或 -)。
- 基本上我有一个django项目目录和两个分类的.py文件。在我自己继续之前,我想知道将机器学习算法实施到 Web 应用程序的标准方法是什么。
如果您能推荐教程或存储库,那就太好了。
谢谢!
异步处理
如果您不需要将 ML 代码的分类结果立即传递给用户(例如作为对提交的相同 POST 请求),那么您始终可以将分类作业排队到 运行 在后台或者甚至是具有更多 CPU/memory 资源的不同服务器(例如 django-background-tasks or Celery)
例如,排队的任务是在该字段为空(尚未分类)的数据库行上填充字段 UserResponse.class_name
(正、负)
实时通知
如果 ML 代码很慢,并且想要return结果一可用就给用户,您可以使用上面描述的异步方法,并与实时通知配对(例如 socket.io to the browser ()
如果 ML 执行时间太长以至于它可能会在下面描述的同步方法中超时 HTTP 请求,那么这就变得必要了。
同步处理,如果 ML 代码不是 CPU 密集型(足够快)
如果您需要立即 returned 那个分类结果,并且 ML 分类足够快 *,您可以在 HTTP 请求-响应周期内这样做 ( ML 代码完成后 POST 请求 returns,同步)
*这里足够快意味着它不会使 HTTP request/response 超时,并且用户不会失去耐心。
好吧,我必须自己开发相同的解决方案。就我而言,我使用了 Theano。如果您使用的是 tensorflow 或 theano,则可以保存您构建的模型。因此,首先,使用您的训练数据集训练模型,然后使用您选择的库保存模型。您只需将处理预测的代码部分部署到您的 Django Web 应用程序中。因此,使用简单的 POST,您可以足够快地向用户提供句子的预测 class。此外,如果您认为需要,您可以 运行 定期使用新的输入模式再次训练您的模型并再次保存。
我建议不要使用 Django,因为它会增加解决方案的执行时间。
相反,您可以使用 node 来提供与作为独立服务器运行的 TensorFlow rest API 交互的 Reactjs 前端。
正如上面这个 post 的答案所建议的那样,最好使用 WebSockets,您可以使用反应 WebSocket module 这样一旦组件的状态发生变化,它就会刷新您的组件。
希望对您有所帮助。
我有一个 Django 表单,它正在收集用户响应。我还有一个tensorflow句子分类模型。 best/standard 将这两者放在一起的方法是什么。 详情:
- tensorflow 模型是根据烂番茄的电影评论数据训练的。
- 每次在我的响应模型中创建一个新行,我都希望 tensorflow 代码对其进行分类(+ 或 -)。
- 基本上我有一个django项目目录和两个分类的.py文件。在我自己继续之前,我想知道将机器学习算法实施到 Web 应用程序的标准方法是什么。
如果您能推荐教程或存储库,那就太好了。 谢谢!
异步处理
如果您不需要将 ML 代码的分类结果立即传递给用户(例如作为对提交的相同 POST 请求),那么您始终可以将分类作业排队到 运行 在后台或者甚至是具有更多 CPU/memory 资源的不同服务器(例如 django-background-tasks or Celery)
例如,排队的任务是在该字段为空(尚未分类)的数据库行上填充字段 UserResponse.class_name
(正、负)
实时通知
如果 ML 代码很慢,并且想要return结果一可用就给用户,您可以使用上面描述的异步方法,并与实时通知配对(例如 socket.io to the browser (
如果 ML 执行时间太长以至于它可能会在下面描述的同步方法中超时 HTTP 请求,那么这就变得必要了。
同步处理,如果 ML 代码不是 CPU 密集型(足够快)
如果您需要立即 returned 那个分类结果,并且 ML 分类足够快 *,您可以在 HTTP 请求-响应周期内这样做 ( ML 代码完成后 POST 请求 returns,同步)
*这里足够快意味着它不会使 HTTP request/response 超时,并且用户不会失去耐心。
好吧,我必须自己开发相同的解决方案。就我而言,我使用了 Theano。如果您使用的是 tensorflow 或 theano,则可以保存您构建的模型。因此,首先,使用您的训练数据集训练模型,然后使用您选择的库保存模型。您只需将处理预测的代码部分部署到您的 Django Web 应用程序中。因此,使用简单的 POST,您可以足够快地向用户提供句子的预测 class。此外,如果您认为需要,您可以 运行 定期使用新的输入模式再次训练您的模型并再次保存。
我建议不要使用 Django,因为它会增加解决方案的执行时间。
相反,您可以使用 node 来提供与作为独立服务器运行的 TensorFlow rest API 交互的 Reactjs 前端。
正如上面这个 post 的答案所建议的那样,最好使用 WebSockets,您可以使用反应 WebSocket module 这样一旦组件的状态发生变化,它就会刷新您的组件。
希望对您有所帮助。