forward

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

Описание

пример

dLYVideo = forward(i3d,dlXVideo) вычисляет видео классификатор выходные параметры для обучения. Можно использовать эту функцию с dlfeval (Deep Learning Toolbox), чтобы автоматически вычислить градиенты для обновления настраиваемых параметров видео классификатора. i3d задан как inflated3dVideoClassifier объект классификатора. Используйте этот синтаксис, когда вы установите OpticalFlowMethod свойство классификатора возражает против "none".

[dLYVideo,stateVideo] = forward(i3d,dlXVideo) также возвращает обновленное видео сетевое состояние. Выход, stateVideo, содержит информацию, обеспеченную классификатором между учебными итерациями. Например, состояние операции нормализации партии.

[dLYVideo,dlYFlow] = forward(i3d,dlXVideo,dlXFlow) также возвращает оптический поток выходные параметры в классификатор для обучения. Используйте этот синтаксис, когда вы установите OpticalFlowMethod свойство классификатора возражает против "Farneback".

[dLYVideo,dlYFlow,stateVideo,stateFlow] = forward(i3d,dlXVideo,dlXFlow) также возвращает обновленную видео сеть и состояния сети оптического потока.

Примеры

свернуть все

В этом примере показано, как вычислить видео классификатор выходные параметры для обучения. Чтобы узнать больше, как обучить видео сеть классификатора для вашего набора данных, посмотрите Распознавание Жеста с помощью Видео и Глубокого обучения.

Загрузите видео классификатор, предварительно обученный на кинетике 400 наборов данных.

sf = slowFastVideoClassifier;

Задайте имя видеофайла.

videoFilename = "washingHands.avi";

Создайте VideoReader считать видеокадры.

reader = VideoReader(videoFilename);

Считайте необходимое количество видеокадров, соответствующих видео сети классификатора с начала видеофайла. Необходимое количество кадров задано значением 4-го элемента InputSize свойство видео классификатора.

sequenceLength = sf.InputSize(4);
sequenceRange = [1,sequenceLength];
videoFrames = read(reader,sequenceRange);

Измените размер видеокадров для обучения. Необходимая высота и ширина заданы первыми двумя элементами InputSize свойство видео классификатора.

heightWidth = sf.InputSize(1:2);
resized = imresize(videoFrames,heightWidth);

Преобразуйте вход, чтобы ввести single.

resized = single(resized);

Перемасштабируйте вход между 0 и 1.

minValue = sf.InputNormalizationStatistics.Min;
maxValue = sf.InputNormalizationStatistics.Max;
minValue = reshape(minValue,1,1,3);
maxValue = reshape(maxValue,1,1,3);
resized = rescale(resized,0,1,InputMin=minValue,InputMax=maxValue);

Нормируйте видеоданные с помощью среднего и стандартного отклонения.

meanValue = sf.InputNormalizationStatistics.Mean;
stdValue = sf.InputNormalizationStatistics.StandardDeviation;
meanValue = reshape(meanValue,1,1,3);
stdValue = reshape(stdValue,1,1,3);
resized = resized - meanValue;
resized = resized./stdValue;

Преобразуйте вход в dlarray объект.

dlVideo = dlarray(resized,"SSCTB");
trainingActivations = forward(sf,dlVideo);

Найдите метку класса, соответствующую максимальному счету.

[score,idx] = max(trainingActivations);
label = sf.Classes(idx)
label = categorical
     washing hands 

score
score = 
  1(S) × 1(S) × 1(S) × 1(C) × 1(B) single dlarray

    0.0026

Отобразите метку класса.

frame = videoFrames(:,:,:,end);
frame = insertText(frame,[2,2],string(label),FontSize=24);
imshow(frame)

Входные параметры

свернуть все

Классификатор в виде inflated3dVideoClassifier объект.

Ввод видео в виде H-by-W-by-C-by-T-by-B SSCTB отформатированный dlarray Объект (Deep Learning Toolbox), который соответствует вводу видео классификатора.

  • H Высота.

  • W Width.

  • C Количество каналов. Количество каналов должно быть равно значению каналов InputSize свойство объекта классификатора.

  • T NumberOfFrames . Количество кадров должно быть равно значению систем координат InputSize свойство объекта классификатора.

  • B Пакетный размер.

Вход видео и оптического потока в виде H-by-W-by-C-by-T-by-B SSCTB отформатированный dlarray Объект (Deep Learning Toolbox), который соответствует входу видео и оптического потока классификатора.

  • H Высота.

  • W Width.

  • C Количество каналов. Количество каналов должно быть равно значению каналов InputSize свойство объекта классификатора.

  • T NumberOfFrames . Количество кадров должно быть равно значению систем координат InputSize свойство объекта классификатора.

  • B Пакетный размер.

Выходные аргументы

свернуть все

Активации видео сети, возвращенной как отформатированный dlarray Объект (Deep Learning Toolbox).

Обновленное видео сетевое состояние, возвращенное как таблица с тремя столбцами:

  • Layer — Имя слоя в виде строкового скаляра.

  • Parameter — Название параметра в виде строкового скаляра.

  • Value — Значение параметра в виде dlarray объект.

Сетевое состояние содержит информацию, которую помнит сеть между итерациями. Например, состояние LSTM и слоев нормализации партии.

Во время обучения или вывода, можно обновить сетевое состояние с помощью выхода forward и predict функции.

Активации сети оптического потока, возвращенной как отформатированный dlarray Объект (Deep Learning Toolbox).

Обновленное состояние сети оптического потока, возвращенное как таблица с тремя столбцами:

  • Layer — Имя слоя в виде строкового скаляра.

  • Parameter — Название параметра в виде строкового скаляра.

  • Value — Значение параметра в виде dlarray объект.

Сетевое состояние содержит информацию, которую помнит сеть между итерациями. Например, состояние LSTM и слоев нормализации партии.

Во время обучения или вывода, можно обновить сетевое состояние с помощью выхода forward и predict функции.

Введенный в R2021b