exponenta event banner

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