.. include:: ../../../reuse_content/general.rst
.. |a_config| raw:: html
.. |a_guide| raw:: html
Обучение визуальных нейросетевых моделей
========================================
Команда для запуска процесса обучения визуальных нейросетевых моделей:
.. code-block:: sh
python ./openav/api/train_video.py --config <путь_к_вашему_конфигурационному_файлу>.yaml
.. important:: Для запуска команды необходимо обязательно указать путь к конфигурационному файлу. Запускать программу необходимо из директории, где она расположена.
Конфигурационный файл
~~~~~~~~~~~~~~~~~~~~~
Конфигурационный файл включает в себя следующие настройки:
* Отображение процесса выполнения программы в терминале (командной строке)
* Работа с файловой системой
* Параметры настройки процесса обучения нейросетевых моделей
.. rst-class:: config-link
|a_config|
Пример конфигурационного файла
|/a|
.. important:: Для обучения на видеоадапторе потребуется вручную установить библиотеку для машинного обучения PyTorch с использованием GPU.
|a_guide|
Инструкция для установки PyTorch с использованием GPU
|/a|
Отображение процесса выполнения команды в терминале
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. rst-class:: custom-table shell-table
.. csv-table::
:align: center
:header: "Параметр", "Тип", "Значение по умолчанию", "Описание"
:widths: 23, 7, 25, 45
"hide_metadata", "bool", "``false``", "Включение отображения метаданных"
"hide_libs_vers", "bool", "``false``", "Включение отображения версий установленных библиотек в командной строке"
Работа с файловой системой
~~~~~~~~~~~~~~~~~~~~~~~~~~
.. rst-class:: custom-table filesystem-table
.. csv-table::
:align: center
:header: "Параметр", "Тип", "Значение по умолчанию", "Описание"
:widths: 23, 7, 25, 45
"path_to_dataset", "str", "``<путь_к_набору_данных>``", "Директория, где размещается подготовленный набор данных для обучения нейросетевых моделей"
Параметры процесса обучения визуальных нейросетевых моделей
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. rst-class:: custom-table encode-table
.. csv-table::
:align: center
:header: "Параметр", "Тип", "Значение по умолчанию", "Описание"
:widths: 23, 7, 20, 50
"len_video", "int", "``ваше значение``", "Количество видеофайлов"
"size_lips", "int", "``width: 112`` |br| ``height: 112``", "Размер входного изображения области губ в ``px``"
"padding_lips", "bool", "``True``", "Добавление отступов на изображениях губ"
"seed", "int", "``42``", "Параметр для инициализации случайных процессов, который обеспечивает воспроизводимость результатов и одинаковые начальные условия"
"batch_size", "int", "``8``", "Размер батча. Общее число тренировочных объектов, представленных в одном батче. Устанавливается в зависимости от возможности вашего оборудования"
"channels_lips", "int", "``1``", "Количество каналов изображения. ``1``- одноканальное изображение (в серых тонах), ``3`` - трёхканальное изображение (RGB)"
"lr", "float", "``0.0001``", "Коэффициент скорости обучения. Чем меньше значение, тем дольше будет идти обучение модели. Однако, стоит помнить, что может наступить переобучение модели. Данный коэффициент подбирается эмпирическим путем"
"epoch", "int", "``100``", "Количество эпох обучения модели. Проход одной эпохи значит, что весь датасет прошел через нейронную сеть в прямом и обратном направлении только один раз. Параметр ``epoch_stop`` позволяет избежать переобучения модели"
"epoch_stop", "int", "``5``", "Количество эпох, в течении которых модель не прогрессирует в обучении. Т.е. если по прошествии, например, ``5`` эпох модель не показывала прирост ``accuracy`` (либо ваша метрика), то в данном случае процесс обучения останавливается и сохраняется модель на эпохе с наибольшей точностью. Данный параметр позволяет предотвратить переобучение модели, а также снизить длительность обучения"