.. include:: ../../../reuse_content/general.rst .. |a_config| raw:: html .. |a_model_fa| raw:: html .. |a_model_fv| raw:: html .. |a_guide| raw:: html Модуль объединения модальностей =============================== Команда для запуска модуля объединения модальностей: .. code-block:: sh openav_train_audiovisual --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", "``<путь_к_набору_данных>``", "Директория, где размещается подготовленный набор данных для обучения нейросетевых моделей" "subfolders", "str","``train: ""train""`` |br| ``val: ""val""`` |br| ``test: ""test""``", "Директории с обучающей, тестовой и валидационной выборками" "path_to_model_fa", "str", "``<путь_к_весам_аудио_модели>``", "Путь к предобученной модели , которая используются для извлечения акустических признаков. Предобученную модель можно скачать по |a_model_fa| ссылке |/a|" "path_to_model_fv", "str", "``<путь_к_весам_видео_модели>``", "Путь к предобученной модели, которая используются для извлечения визуальных признаков. Предобученную модель можно скачать по |a_model_fv| ссылке |/a|" "path_to_save_models", "str", "``<путь_сохранения_обученных_моделей>``", "Путь, по которому будут храниться обученные нейросетевые модели" Параметры процесса обучения аудиовизуальных нейросетевых моделей ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. rst-class:: custom-table encode-table .. csv-table:: :align: center :header: "Параметр", "Тип", "Значение по умолчанию", "Описание" :widths: 23, 7, 20, 50 "n_classes", "int", "``26``", "Количество классов для задачи классификации. Соответствуют количеству фраз из базы данных" "classes", "list", "``[""1_Левая"", ""2_Правая"",`` |br| ``...`` |br| ``""26_Калибровка""]``", "Список названий классов, которые представлены в базе данных" "seed", "int", "``42``", "Параметр, задающий начальное значение генератора псевдослучайных чисел в PyTorch. Установка фиксированного ``seed`` обеспечивает воспроизводимость результатов между разными запусками программы. При одинаковом ``seed`` все случайные операции, такие как инициализация весов нейронной сети, перемешивание данных и др., будут давать одинаковые результаты." "max_segment", "int", "``2``", "Гиперпараметр, определяющий максимальное количество перекрывающихся сегментов, на которые разбиваются длинные последовательности аудио и видео данных перед подачей их на вход нейронной сети для обучения или вывода" "epochs", "int", "``150``", "Количество эпох обучения модели. Проход одной эпохи значит, что весь датасет прошел через нейронную сеть в прямом и обратном направлении только один раз. Параметр ``patience`` позволяет избежать переобучения модели" "patience", "int", "``15``", "Количество эпох, в течении которых модель не прогрессирует в обучении. Т.е. если по прошествии, например, ``5`` эпох модель не показывала прирост ``accuracy`` (либо ваша метрика), то в данном случае процесс обучения останавливается и сохраняется модель на эпохе с наибольшей точностью. Данный параметр позволяет предотвратить переобучение модели, а также снизить длительность обучения" "batch_size", "int", "``2``", "Размер батча. Общее число тренировочных объектов, представленных в одном батче. Устанавливается в зависимости от возможности вашего оборудования" "leaning_rate", "float", "``0.0001``", "Коэффициент скорости обучения. Чем меньше значение, тем дольше будет идти обучение модели. Однако, стоит помнить, что может наступить переобучение модели. Данный коэффициент подбирается эмпирическим путем" "weight_decay", "float", "``0.0``", "Параметр, используемый для регуляризации весов нейронной сети путем добавления L2-регуляризации к функции потерь во время обучения. Позволяет предотвратить переобучение и подбирается экспериментальным путем " "hidden_units", "int", "``256``", "Количество скрытых единиц (hidden units) в декодере нейронной сети. Этот параметр определяет размерность внутреннего представления данных в декодере, что влияет на емкость (expressive capacity) и способность декодера извлекать и обобщать сложные зависимости в данных. Подбирается эмипирическим путем" "hidden_features", "int", "``128``", "Количество скрытых признаков (hidden features) или временных шагов, используемых в нейросетевые модели. Этот гиперпараметр связан с тем, как модель обрабатывает последовательные данные, такие как аудио и видео. Увеличение этого параметра позволяет модели обрабатывать более длинные входные последовательности, но также увеличивает вычислительную сложность и требования к памяти, уменьшение может ускорить обучение, но при этом модель будет видеть только более короткие временные зависимости. Подбирается эмпирически" "input_dim", "int", "``512``", "Размерность входных векторов признаков для аудио и видео данных, подаваемых в модель. Например, параметр ``input_dim=512`` указывает, что на вход нейронной сети будут подаваться векторы признаков размера 512 для каждого временного шага последовательности. Размер входного вектора обычно является результатом предварительной обработки и извлечения низкоуровневых признаков из исходных аудио/видео данных с помощью отдельных моделей или методов обработки сигналов." "shape_audio", "int","``channels: ""1""`` |br| ``n_mels: ""64""`` |br| ``samples: ""306""``", "Здесь определяется размерность входных тензоров аудиоданных, ожидаемые моделью. Это форма задается тремя числами ``channels`` - количество каналов в аудиоданных, чаще всего аудио является моно, поэтому здесь канал равен ``1``. При стерео он равен ``2``. ``n_mels`` - количество мел-частотных кепстральных коэффициентов (MFCC), используемых для представления аудиоданных. ``samples`` - количество временных выборок или окон, входящих в одно аудио представление. Являются фиксированными параметрами" "shape_video", "int","``frames: ""29""`` |br| ``channels: ""3""`` |br| ``width: ""88""`` |br| ``height: ""88""``", "Здесь определяется размерность входных тензоров видеоданных, ожидаемые моделью. ``frames`` - это количество видеокадров в одном сегменте. ``channels`` - это количество цветовых каналов (R, G, B) в видеокадре. Для изображения в серых тонах количество каналов равно ``1``. ``width`` - ширина видеокадра в пикселях. ``height`` - высота видеокадра в пикселях. Являются фиксированными параметрами" "encoder_decoder", "int", "``5``", "Количество блоков энкодера и декодера в архитектуре трансформера, который используется в этой модели. Доступные значения от ``1`` до ``50``. Правильный выбор количества энкодер/декодер блоков является важным гиперпараметром и часто подбирается экспериментально в зависимости от размера данных, доступных вычислительных ресурсов и требуемого качества модели" "optimizer", "str", "``lion``", "Выбор оптимизатора обучения нейросетевой модели. Может существенно оказывать влияние на скорость сходимости, стабильность и окончательную точность модели. Разные оптимизаторы имеют свои преимущества и недостатки, подходящие для определенных задач и архитектур моделей. Доступные варианты ``adam``, ``adamw``, ``sgd``, ``lion``" "requires_grad", "str", "``av``", "Этот параметр предоставляет гибкий способ настройки режима обучения сложных моделей, позволяя либо полностью зафиксировать предобученные компоненты, либо обучать их совместно с основной частью модели. ``none`` - обучаются все компоненты модели: аудио, видео и трансформер. ``a`` - заморозка весов для аудио компонента. ``v`` - заморозка весов для видео компонента. ``av`` - заморозка весов для аудио и видео компонентов, обучается только трансформер"