exponenta event banner

ctc

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

    Описание

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

    ctc функция вычисляет потери CTC между прогнозами и целями, представленными как dlarray данные. Используя dlarray объекты упрощают работу с высокоразмерными данными, позволяя маркировать размеры. Например, можно пометить, какие измерения соответствуют пространственным, временным, канальным и пакетным измерениям, используя 'S', 'T', 'C', и '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 для функции требуются целевые объекты и целевая маска, указанные как 2-D массивы, удалите измерение одиночного канала с помощью 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 объекты автоматически сортируют свои размеры. Обеспечить, чтобы размеры dlY и targets непротиворечивы, когда dlY является отформатированным dlarray, также указать targets как отформатированный dlarray.

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

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

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

    Совет

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

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

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

    Совет

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

    Аргументы пары «имя-значение»

    Укажите дополнительные пары, разделенные запятыми 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

    Размерный порядок неформатированных входных данных, указанный как разделенная запятыми пара, состоящая из 'DataFormat' и вектор символов или строковый скаляр FMT с меткой для каждого измерения данных.

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

    • 'S' - Пространственный

    • 'C' - Канал

    • 'B' - Партия (например, пробы и наблюдения)

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

    • 'U' - Не указано

    Можно указать несколько размеров с метками 'S' или 'U'. Можно использовать метки 'C', 'B', и 'T' максимум один раз.

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

    Пример: 'DataFormat','SSCB'

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

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

    свернуть все

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

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

    Представлен в R2021a