Все мы знаем процесс развертывания любой обученной модели машинного обучения и используем результаты в нашем веб-интерфейсе. Но что, если мы хотим обучить нашу необученную модель с помощью веб-интерфейса?

В этой статье мы обсудим, как запускать, останавливать / приостанавливать и возобновлять обучение модели глубокого обучения, а также проверять мгновенный статус обучения, и все это через веб-интерфейс пользователя.

Вы можете задаться вопросом 🤔…. Насколько это вообще полезно?

Давайте посмотрим…

  • Подобно облачным вычислениям NVIDIA, мы могли бы создать веб-сайт, который принимает входные данные и предоставляет обученную модель с полным контролем над обучением.
  • Или несколько человек могут построить небольшой центр обработки данных для хранения некоторых аппаратных устройств (графических процессоров) и использовать их с помощью веб-интерфейса.
  • Можно разработать веб-сайт визуализации обучения. Этот тип сайта может быть полезен новичкам в понимании некоторых моделей обучения, таких как обновления в K-средних, изменение 1D или 2D гиперплоскости в линейной регрессии и т. Д.
  • Используемый здесь подход может быть очень полезным в случае постоянно расширяющейся базы данных.

Здесь я буду использовать flask для развертывания нашего проекта и Keras для обучения.

Предпосылки:

Предпосылками для понимания этого блога являются базовые знания моделей глубокого обучения с использованием Keras, потоковой передачи в python и основ Flask.

СОДЕРЖАНИЕ:

  1. О Flask
  2. Определите параметры, переменные для модели.
  3. Создайте функции для инициализации модели, выполнения обучения и завершения обучения.
  4. Создайте функцию для запуска, остановки, возобновления и состояния, которая вызывается в соответствии с путем веб-интерфейса.
  5. Создайте WEB-интерфейс с кнопками для элементов управления и выходов.

Колба

Flask - это небольшая и легкая веб-платформа Python, которая предоставляет полезные инструменты и функции, упрощающие создание веб-приложений на Python.

Установка Flask на вашу машину

Установить флягу довольно просто. Просто введите этот код в терминал или Powershell.

pip install flask

Лучше было бы установить его в виртуальной среде.

Почему именно Flask?

  • Легко использовать.
  • Встроенный сервер разработки и отладчик.
  • Интегрированная поддержка модульного тестирования.
  • Отправка RESTful-запросов.
  • Подробно задокументирован.

Приложение Flask

Импортировать необходимые библиотеки

Загрузить или инициализировать данные:

Поскольку цель этого блога - не углубляться в глубокое обучение, для простоты я возьму произвольные данные.

На графике набор данных выглядит так:

Объявление необходимых переменных и параметров

Инициализировать модель

Для простоты давайте рассмотрим простую модель без скрытого слоя и с одним выходом.

Функции для выполнения тренировки:

perform_training() в основном запускает обучение нашей модели на основе инициализированной модели.

Во всей этой модели мы будем использовать переменную типа bool training_status для управления началом и остановкой нашего обучения. perform_training() прекратит работу, когда либо обучение будет завершено, либо training_status будет изменен на false.

В обоих вышеупомянутых случаях будет вызван finalize_training(), который, наконец, выдаст результаты нашей обученной модели.

Мы сохраняем значения наших весов и смещений, так что всякий раз, когда мы приостанавливаем или останавливаем обучение, т. Е. Дляtraining_status установлено значение false, мы можем повторно использовать их для возобновления обучения из частично обученного состояния.

А теперь самое интересное.

Рендеринг приложения Flask:

При посещении localhost: 5000 будет вызвана функция индекса, которая отображает наш HTML-файл. Кнопки будут перенаправлять нас на путь в зависимости от нажатой кнопки.

Пример: при нажатии кнопки «Пуск» выполняется перенаправление на «/ start».

Давайте обсудим процесс, который последует за нажатием кнопок.

Начинать

Как только мы нажмем кнопку «Пуск» на нашей веб-странице, произойдет перенаправление на «/ start», и сработает функция start_training. Здесь мы сначала инициализируем нашу модель с init_model. Мы создаем поток функции perform_training с training_status = true, и обучение начинается. Если модель уже обучена, у нас будет training = false из самой функции perform_training.

Пауза

Когда мы нажимаем кнопку паузы на нашей веб-странице, она перенаправляется на «/ pause» и запускается функция pause_training. Эта функция в основном устанавливает training = false и присоединяется к потоку, который мы создали в нашей функции start_training с помощью training_thread.join(). При получении training = false наша perform_training функция будет завершена. Обученные веса и количество завершенных эпох будут сохранены и будут использоваться, когда мы возобновим обучение.

Продолжить:

При нажатии кнопки возобновления срабатывает функция resume_training. Эта функция снова устанавливает training = true. Мы инициализируем, теперь инициализируем веса нашей модели теми, которые мы получили в результате приостановленного обучения. Теперь мы снова запускаем нашу perform_training функцию с обновленными весами и эпохами. Таким образом, наши тренировки будут возобновлены.

Положение дел:

Это status_training() позволит нам увидеть текущие веса нашей модели и определить, продолжается ли обучение, приостановлено или завершено.

Заключение:

После завершения обучения нашей модели мы получаем наши окончательные параметры как m = 0,301 и c = 5,017, что почти совпадает с нашими начальными значениями, то есть a = 0,3 и b = 5.

Не существует общей стратегии, подходящей для каждой проблемы. Здесь я создал и использовал очень простой набор данных и всего 2 параметра m и c. Мы можем легко изменить это для наборов данных, требующих нескольких параметров. Также здесь можно использовать любую модель с небольшими изменениями. Мы даже можем попробовать применить это для одновременного управления несколькими моделями. Кроме того, Pytorch или TensorFlow можно использовать вместо Keras для управления еще более низкого уровня.

Итак, это все…!

Спасибо за прочтение. Надеюсь, этот блог поможет вам понять подход к этой проблеме. Пожалуйста, дайте мне знать, если у вас возникнут проблемы или вы не сможете следить за блогом.

Это мой первый блог. Если вам понравилось, 👏 и поделитесь с друзьями.

Пожалуйста, обращайтесь за комментариями или отзывами. Ваше здоровье ..!

Вы можете найти полный код (включая HTML-файл) на Github.

Обо мне

Я Партх Сони, студент 2-го курса бакалавриата в IIIT в Аллахабаде, энтузиаст AI ML, член отдела искусственного интеллекта Geekhaven IIIT в Аллахабаде. Свяжитесь со мной в LinkedIn