ctc

Потеря ассоциативной временной классификации (CTC) для невыровненной классификации последовательностей

    Описание

    Операция CTC вычисляет потерю ассоциативной временной классификации (CTC) между невыровненными последовательностями.

    ctc функция вычисляет потерю CTC между предсказаниями и предназначается представленный как dlarray данные. Используя dlarray объекты делают работу с высокими размерными данными легче, позволяя вам пометить размерности. Например, можно пометить, которому размерности соответствуют пространственный, время, канал, и обрабатывают размерности в пакетном режиме с помощью "S"TC, и "B" метки, соответственно. Для незаданных и других размерностей используйте "U" метка. Для dlarray возразите функциям, которые действуют по конкретным размерностям, можно задать метки размерности путем форматирования dlarray возразите непосредственно, или при помощи DataFormat опция.

    пример

    loss = ctc(dlY,targets,YMask,targetsMask) возвращает потерю CTC между отформатированным dlarray объект dlY содержа предсказания и целевые значения targets использование предсказания и целевых масок YMask и targetsMask, соответственно.

    Для бесформатных входных данных используйте 'DataFormat' опция.

    loss = ctc(dlY,targets,YMask,targetsMask,'DataFormat',FMT) также задает формат размерности FMT когда dlY не отформатированный dlarray.

    loss = ctc(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущих синтаксисах. Например, 'BlankIndex','last' задает пустой индекс, соответствующий последнему элементу словаря.

    Примеры

    свернуть все

    Создайте массив 2 целевых последовательностей различных длин более чем 10 классов. Целевые последовательности не должны содержать пустой индекс, который равняется 1 по умолчанию.

    numObservations = 2;
    numClasses = 10;
    
    targets = cell(numObservations,1);
    targets{1} = [2 3 5 7 9 2 3 5 3 2 3];
    targets{2} = [2 3 3 3 4 4 4 6 8 8 8 10 3];

    Создайте случайные массивы последовательностей предсказания. Длина последовательностей предсказания должна быть больше или быть равна длине плюс количество повторных индексов соответствующей целевой последовательности. В этом случае первая последовательность имеет длину 11 без повторных индексов, вторая последовательность имеет длину 13 с 6 повторными индексами.

    Y = cell(numObservations,1);
    
    Y{1} = rand(numClasses,11);
    Y{2} = rand(numClasses,13 + 6);

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

    Y
    Y=2×1 cell array
        {10×11 double}
        {10×19 double}
    
    
    targets
    targets=2×1 cell array
        {[     2 3 5 7 9 2 3 5 3 2 3]}
        {[2 3 3 3 4 4 4 6 8 8 8 10 3]}
    
    

    Заполните предсказание и предназначайтесь для последовательностей во втором измерении с помощью padsequences функционируйте и также возвратите соответствующую маску.

    [Y,YMask] = padsequences(Y,2);

    Заполните цели с помощью padsequences функция. Цели должны быть положительными целыми числами между 1 и количество классов, и не должны содержать пустой индекс, поэтому задавать дополнительное значение 2.

    [targets,targetsMask] = padsequences(targets,2,'PaddingValue',2);

    ctc функция требует, чтобы цели и целевая маска, заданная как 2D массивы, удалили одноэлементную размерность канала с помощью squeeze функция.

    targets = squeeze(targets);
    targetsMask = squeeze(targetsMask);

    Преобразуйте заполненные последовательности предсказания и маску к dlarray с форматом 'CTB' (канал, время, пакет). Поскольку отформатированный dlarray объекты автоматически сортируют размерности, сохраняют размерности целей и маски сопоставимыми, также преобразовывая их в отформатированный dlarray объекты с теми же форматами.

    dlY = dlarray(Y,'CTB');
    YMask = dlarray(YMask,'CTB');

    Точно так же преобразуйте заполненные целевые последовательности и маску к dlarray с форматом 'TB' (время, пакет).

    targets = dlarray(targets,'TB');
    targetsMask = dlarray(targetsMask,'TB');

    Вычислите потерю CTC между предсказаниями и целями с помощью ctc функция.

    loss = ctc(dlY,targets,YMask,targetsMask)
    loss = 
      1×1 dlarray
    
       12.1568
    
    

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

    свернуть все

    Предсказания в виде отформатированного dlarray, бесформатный dlarray, или числовой массив. Когда dlY не отформатированный dlarray, необходимо задать формат размерности с помощью 'DataFormat' опция.

    Предсказания dlY должен иметь 'B' (пакет), 'C' (канал) и 'T' (время) размерность и может иметь различные длины последовательности к соответствующим целям в targets.

    Если dlY числовой массив, затем targets, YMask, или targetsMask должен быть dlarray.

    Целевые последовательности в виде отформатированного или бесформатного dlarray или числовой массив.

    Задайте цели как массив с размерностями, соответствующими наблюдениям и временным шагам целевых последовательностей. Например, задайте цели как отформатированный dlarray объект с форматом 'BT' (пакет, время).

    Цели должны иметь то же количество наблюдений как предсказания. Целевые значения, соответствующие значениям маски, равным 1, должны быть положительными целыми числами между 1 и количество каналов dlY и не должен включать пустой индекс.

    Если targets отформатированный dlarray, затем его формат должен совпасть с форматом dlY, или то же самое как DataFormat если dlY восстанавливается после форматирования.

    Если targets бесформатный dlarray или числовой массив, затем функция применяет формат dlY или значение DataFormat к targets.

    Совет

    Отформатированный dlarray объекты автоматически переставляют размерности базовых данных, чтобы иметь, заказывают "S" (пространственный), "C" (канал), "B" (пакет), "T" (время), затем "U" (незаданный). Гарантировать что размерности dlY и targets сопоставимы, когда dlY отформатированный dlarray, также задайте targets как отформатированный dlarray.

    Маска, указывающая, который элементы предсказания включать для расчета потерь в виде dlarray объект, логический массив или числовой массив с тем же размером как dlY.

    Функция включает и исключает элементы предсказаний для расчета потерь, когда соответствующее значение в маске равняется 1 и 0, соответственно.

    В течение каждого такта и наблюдения в маске, соответствующими элементами в размерности канала должны быть все единицы или все нули.

    Совет

    Отформатированный dlarray объекты автоматически переставляют размерности базовых данных, чтобы иметь этот порядок: "S" (пространственный), "C" (канал), "B" (пакет), "T" (время) и "U" (незаданный). Например, dlarray объекты автоматически переставляют размерности данных с форматом "TSCSBS" иметь формат "SSSCBT".

    Гарантировать что размерности dlY и маска сопоставима, когда dlY отформатированный dlarray, также задайте маску как отформатированный dlarray.

    Маска, указывающая, который целевые элементы включать для расчета потерь в виде dlarray объект, логический массив или числовой массив с тем же размером как dlY.

    Функция включает и исключает элементы целей для расчета потерь, когда соответствующее значение в маске равняется 1 и 0, соответственно.

    Совет

    Отформатированный dlarray объекты автоматически переставляют размерности базовых данных, чтобы иметь этот порядок: "S" (пространственный), "C" (канал), "B" (пакет), "T" (время) и "U" (незаданный). Например, dlarray объекты автоматически переставляют размерности данных с форматом "TSCSBS" иметь формат "SSSCBT".

    Гарантировать что размерности dlY и маска сопоставима, когда dlY отформатированный dlarray, также задайте маску как отформатированный dlarray.

    Аргументы name-value

    Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

    Пример: 'BlankIndex','last' задает пустой индекс, соответствующий последнему элементу словаря

    Индекс знака пробела в виде разделенной запятой пары, состоящей из 'BlankIndex' и одно из следующего:

    • Положительное целое число – Использование элемент в словаре с заданным индексом как знак пробела. Если 'BlankIndex' целое число, затем оно должно между 1 и количество каналов dlY включительно.

    • 'last' – Используйте последний элемент словаря как знак пробела.

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string

    Порядок размерности бесформатных входных данных в виде вектора символов или строкового скаляра FMT это обеспечивает метку для каждой размерности данных.

    Когда вы задаете формат dlarray объект, каждый символ обеспечивает метку для каждой размерности данных и должен быть одним из следующего:

    • "S" — Пространственный

    • "C" — Канал

    • "B" — Пакет (например, выборки и наблюдения)

    • "T" — Время (например, временные шаги последовательностей)

    • "U" — Незаданный

    Можно указать, что несколько размерностей пометили "S" или "U". Можно использовать, маркирует "C"B, и "T" самое большее однажды.

    Необходимо задать DataFormat когда входными данными не является отформатированный dlarray.

    Типы данных: char | string

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

    свернуть все

    Потеря CTC, возвращенная как бесформатный dlarray скаляр с тем же базовым типом данных как вход dlY.

    Расширенные возможности

    Введенный в R2021a