forward

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

Описание

пример

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

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

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

[dLYVideo,dlYFlow,stateVideo,stateFlow] = forward(classifier,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)

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

свернуть все

Объект Classifier в виде r2plus1dVideoClassifier или slowFastVideoClassifier объект.

Ввод видео в виде 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