- Каждой версия модели оформляется в отдельный проект.
- Для проекта необходимо создать окружение.
- В качестве менеджера пакетов используем
poetry
.
Проект должен быть оформлен в одной папке и содержать всё необходимое для запуска кода.
Проект должен обязательно содержать:
- jupyternotebook.ipynb;
- pyproject.toml
- README.md
- download.py
Должна быть логично продумана структура, каждый раздел должен иметь свое название
(тип ячейки Markdown
, заглавие ### Название раздела
).
В обязательном порядке должны быть разделы:
Analysis
: раздел, где проводится анализ датасета;
Dataset
: раздел, где формируется датасет;
Train
: раздел, где происходит тренировка;
Inference
: раздел в котором полность собирается модель для предсказания из обученных
весов. Импортируются все нужные библиотеки, конфигурируется модель,
инициализируется, и делается предсказание на одном примере.
В качестве примера, можно добавить в проект пример для демо;
При необходимости другие разделы:
Import
: если выносите импорт всех библиотек в отдельную ячейку;
Config
: если есть конфигурационные параметры, вынести в отдельную ячейку;
Split
: если отдельно есть ячейки в которых производиться разделение датасета
на train, val, test;
Augmentation
: раздел настройки аугментации;
Visualization
: функции для визуализации;
Train functions
: функции для тренировки;
Init model
: инициализация модели для тренировки;
Test
: раздел для сбора метрик на тестовом датасете;
Стремится основную часть кода оформлять в функции, классы.
Желательно писать аннотации к функциям, какой тип данных принимает, какой отдает (PEP 3107). Желательно к основным функциям написать docstrings (https://pythonist.ru/docstrings-dokumentirovanie-koda-v-python/) в стиле Sphinx (https://nuancesprog-ru.turbopages.org/nuancesprog.ru/s/p/8140/).
Аугментацию делать с использованием библиотеки albumentations.
Файл который создает папки data
и weights
. В папку data
скачиваются данные на
которых была обученая модель. В папку weights
скачиваются веса модели для инференса.