Машинное обучение (tensorflow / sklearn) в Джанго?

У меня есть форма django, которая собирает ответ пользователя. У меня также есть модель классификации предложений tensorflow. Каков наилучший / стандартный способ собрать эти два вместе. Подробности:

  1. модель tensorflow была обучена данным обзора фильма от Rotten Tomatoes.
  2. каждый раз, когда в моей модели ответа создается новая строка, я хочу, чтобы код tensorflow классифицировал ее( + или - ).
  3. В основном у меня есть каталог проекта django и два .py файлы для классификация. Прежде чем идти вперед , я хотел бы знать, каков стандартный способ реализации алгоритмов машинного обучения в веб-приложении.

было бы здорово, если бы вы могли предложить учебник или РЕПО. Спасибо !

2 ответов


асинхронная обработка

Если вы не нужен результат классификации из кода ML, чтобы пройти тут для (например, в ответ на тот же запрос POST, который был отправлен), тогда вы всегда можете поставить в очередь задание классификации, которое будет выполняться в фоновом режиме или даже на другом сервере с большим количеством ресурсов CPU/памяти (например, с django-фон-задачи или сельдерей)

задача в очереди будет для пример заполнения поля UserResponse.class_name (положительный, отрицательный) в строках базы данных, в которых это поле пусто (еще не классифицировано)

уведомление в реальном времени

Если код ML медленный и хотите вернуть этот результат пользователю как только он будет доступен, вы можете использовать асинхронный подход, описанный выше, и сопряжение с уведомлением в реальном времени (например,гнездо.Ио в браузер (это может быть вызвано из очереди задача)

это становится необходимым, если время выполнения ML настолько велико, что оно может тайм-аут HTTP-запроса в синхронном подходе, описанном ниже.

синхронная обработка, если ML-код не является интенсивным процессором (достаточно быстрым)

Если вам нужен этот результат классификации, то возвращенный немедленно, и классификация мл достаточно быстро *, вы можете сделать это в цикле HTTP request-response (запрос POST возвращается после того, как код ML сделано, синхронно)

*достаточно быстро здесь означает, что он не будет тайм-аут HTTP-запрос/ответ, и пользователь не потеряет терпение.


Ну, мне пришлось самому разработать такое же решение. В моем случае я использовал Теано. Если вы используете tensorflow или theano, вы можете сохранить построенную модель. Итак, сначала обучите модель с помощью набора данных обучения, затем сохраните модель, используя выбранную библиотеку. Вам нужно развернуть в своем веб-приложении django только ту часть кода,которая обрабатывает прогноз. Поэтому, используя простой пост, вы достаточно быстро дадите пользователю предсказанный класс вашего предложения. Также, если вы считаете, что это необходимо, вы можете периодически запускать задание, чтобы снова обучить свою модель новым шаблонам ввода и сохранить ее еще раз.