Идеальный инструмент для старта вашего следующего проекта машинного обучения!

Traingenerator - это веб-приложение для генерации кода шаблона для машинного обучения.

Чтобы сгенерировать собственный код шаблона для PyTorch & sklearn, используя простой веб-интерфейс, созданный с помощью streamlit. traingenerator предлагает несколько вариантов предварительной обработки, настройки модели, обучения и визуализации (с использованием Tensorboard или comet.ml). Он экспортирует в .py, Jupyter Notebook или Google Colab.

Запустите свой код машинного обучения:

  1. Укажите модель на боковой панели (нажмите , если закрыто)
  2. Код обучения будет сгенерирован ниже
  3. Скачивайте и творите волшебство! ✨

Добавление новых шаблонов

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

Некоторые идеи для новых шаблонов: Keras / Tensorflow, Pytorch Lightning, обнаружение объектов, сегментация, классификация текста,…

  1. Создайте папку в ./templates. Имя папки должно соответствовать задаче, которую решает ваш шаблон (например, Image classification). При желании вы можете добавить имя фреймворка (например, Image classification_PyTorch). Оба имени автоматически отображаются в первых двух раскрывающихся списках на боковой панели (см. Изображение). ✨ Совет. Скопируйте образец шаблона, чтобы быстрее приступить к работе.
  2. Добавьте в папку файл sidebar.py (см. Пример). Он должен содержать метод show(), который отображает все специфичные для шаблона компоненты Streamlit на боковой панели (то есть все, что ниже Task) и возвращает словарь пользовательских вводов.
  3. Добавьте в папку файл code-template.py.jinja (см. Пример). Этот шаблон Jinja2 используется для генерации кода. Вы можете написать в нем обычный код Python и изменить его (через Jinja) на основе пользовательского ввода на боковой панели (например, вставить значение параметра из боковой панели или показать разные части кода в зависимости от выбора пользователя).
  4. Необязательно: Добавьте в папку файл test-inputs.yml (см. Пример). Этот простой файл YAML должен определять несколько возможных пользовательских входов, которые можно использовать для тестирования. Если вы запустите pytest (см. Ниже), он автоматически выберет этот файл, отобразит шаблон кода с его значениями и проверит, что сгенерированный код выполняется без ошибок. Этот файл не является обязательным, но он необходим, если вы хотите добавить свой шаблон в это репо.

Установка

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

git clone https://github.com/jrieke/traingenerator.git
cd traingenerator
pip install -r requirements.txt

Необязательно: чтобы кнопка «Открыть в Colab» работала, вам необходимо настроить репозиторий Github, где можно хранить файлы записной книжки (Colab может открывать общедоступные файлы только в том случае, если они находятся на Github). После настройки репо создайте файл .env с содержимым:

GITHUB_TOKEN=<your-github-access-token>
REPO_NAME=<user/notebooks-repo>

Если вы не настроите это, приложение все равно будет работать, но кнопка «Открыть в Colab»
будет отображать только сообщение об ошибке.

Работает локально

streamlit run app/main.py

Обязательно запускайте из каталога traingenerator (а не из каталога app),
в противном случае приложение не сможет найти шаблоны.

Развертывание на Heroku

Сначала установите героку и авторизуйтесь. Чтобы создать новое развертывание, выполните внутри traingenerator:

heroku create
git push heroku main
heroku open

Чтобы обновить развернутое приложение, зафиксируйте свои изменения и запустите:

git push heroku main

Необязательно: если вы настроили репозиторий Github для включения кнопки «Открыть в Colab» (см. Выше), вам также необходимо запустить:

heroku config:set GITHUB_TOKEN=<your-github-access-token>
heroku config:set REPO_NAME=<user/notebooks-repo>

Тестирование

Сначала установите pytest и необходимые плагины через:

pip install -r requirements-dev.txt

Чтобы запустить все тесты:

pytest ./tests

Это генерирует коды Python с различными конфигурациями (как и приложение) и проверяет их выполнение. Само приложение Streamlit на данный момент не тестируется.

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

Вы также можете протестировать отдельный шаблон, передав имя каталога шаблона в --template, например:

pytest ./tests --template "Image classification_scikit-learn"

Репозиторий GitHub