Модуль объединения модальностей

Команда для запуска модуля объединения модальностей:

openav_train_audiovisual --config <путь_к_вашему_конфигурационному_файлу>.yaml

Important

Для запуска команды необходимо обязательно указать путь к конфигурационному файлу. Запускать программу необходимо из директории, где она расположена.

Конфигурационный файл

Конфигурационный файл включает в себя следующие настройки:

  • Отображение процесса выполнения программы в терминале (командной строке)

  • Работа с файловой системой

  • Параметры процесса обучения аудиовизуальных нейросетевых моделей

Important

Для обучения на видеоадапторе потребуется вручную установить библиотеку для машинного обучения PyTorch с использованием GPU.

Инструкция для установки PyTorch с использованием GPU

Отображение процесса выполнения команды в терминале

Параметр

Тип

Значение по умолчанию

Описание

hide_metadata

bool

false

Включение отображения метаданных

hide_libs_vers

bool

false

Включение отображения версий установленных библиотек в командной строке

Работа с файловой системой

Параметр

Тип

Значение по умолчанию

Описание

path_to_dataset

str

<путь_к_набору_данных>

Директория, где размещается подготовленный набор данных для обучения нейросетевых моделей

subfolders

str

train: "train"
val: "val"
test: "test"

Директории с обучающей, тестовой и валидационной выборками

path_to_model_fa

str

<путь_к_весам_аудио_модели>

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

path_to_model_fv

str

<путь_к_весам_видео_модели>

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

path_to_save_models

str

<путь_сохранения_обученных_моделей>

Путь, по которому будут храниться обученные нейросетевые модели

Параметры процесса обучения аудиовизуальных нейросетевых моделей

Параметр

Тип

Значение по умолчанию

Описание

n_classes

int

26

Количество классов для задачи классификации. Соответствуют количеству фраз из базы данных

classes

list

["1_Левая", "2_Правая",
...
"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"
n_mels: "64"
samples: "306"

Здесь определяется размерность входных тензоров аудиоданных, ожидаемые моделью. Это форма задается тремя числами channels - количество каналов в аудиоданных, чаще всего аудио является моно, поэтому здесь канал равен 1. При стерео он равен 2. n_mels - количество мел-частотных кепстральных коэффициентов (MFCC), используемых для представления аудиоданных. samples - количество временных выборок или окон, входящих в одно аудио представление. Являются фиксированными параметрами

shape_video

int

frames: "29"
channels: "3"
width: "88"
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 - заморозка весов для аудио и видео компонентов, обучается только трансформер