主要内容

ctc

未对齐序列分类的连接时间分类(CTC)损失

    描述

    CTC操作计算未对齐序列之间的连接时态分类(CTC)损失。

    ctc函数计算预测和目标之间的CTC损失dlarray数据。使用dlarray对象允许对维度进行标记,从而使处理高维数据更加容易。方法标识哪些维度对应于空间、时间、通道和批处理维度“S”“T”“C”,“B”标签,分别。对于未指定的和其他维度,请使用“U”标签。为dlarray对象函数对特定维度进行操作时,可以通过格式化dlarray对象直接调用,或使用DataFormat选择。

    例子

    损失= ctc (Y目标YMasktargetsMask)返回格式化之间的CTC损失dlarray对象Y包含预测和目标值目标使用预测和目标掩码YMask而且targetsMask,分别。

    对于未格式化的输入数据,请使用“DataFormat”选择。

    损失= ctc (Y目标YMasktargetsMask、“DataFormat”FMT)还指定维度格式FMTY不是格式化的dlarray

    损失= ctc (___名称,值)除先前语法中的输入参数外,还使用一个或多个名称-值对参数指定选项。例如,“BlankIndex”、“最后”指定与词汇表的最后一个元素对应的空白索引。

    例子

    全部折叠

    在10个类中创建2个不同长度的目标序列的数组。目标序列不能包含空索引,默认为1。

    numObservations = 2;numClasses = 10;目标=细胞(numObservations, 1);目标{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 =细胞(numObservations, 1);Y{1} =兰德(numClasses 11);Y{2} = rand(numClasses,13 + 6);

    查看预测和目标的单元格数组

    Y
    Y =2×1单元阵列{10×11 double} {10×19 double}
    目标
    目标=2×1单元阵列{[2 3 5 7 9 2 3 5 3 2 3]} {[2 3 3 3 4 4 4 4 6 8 8 8 10 3]}

    在二次元中填充预测序列和目标序列padsequences函数,并返回相应的掩码。

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

    填充目标使用padsequences函数。目标必须是1和类数量之间的正整数,并且不能包含空白索引,因此指定填充值2。

    (目标,targetsMask) = padsequences(目标2“PaddingValue”2);

    ctc函数需要指定为二维数组的目标和目标掩码,则使用挤压函数。

    目标=挤压(目标);targetsMask =挤压(targetsMask);

    转换填充的预测序列和掩码为dlarray带格式的“施”(通道、时间、批次)。因为格式化dlarray对象自动对维度进行排序,通过将目标和掩码的维度转换为格式化的dlarray具有相同格式的对象。

    海底= dlarray (Y,“施”);YMask = dlarray (YMask,“施”);

    类似地,将填充的目标序列和掩码转换为dlarray带格式的“结核”(时间、批次)。

    目标= dlarray(目标,“结核”);targetsMask = dlarray (targetsMask,“结核”);

    计算预测和目标之间的CTC损失ctc函数。

    损失= ctc(海底,目标,YMask targetsMask)
    损失= 1×1 dlarray 12.1568

    输入参数

    全部折叠

    预测,指定为格式化的dlarray,一个非格式化dlarray,或数字数组。当Y不是格式化的dlarray方法指定尺寸格式“DataFormat”选择。

    预测Y必须有一个“B”(批处理),“C”(频道),“T”(时间)维度和可以有不同序列长度的对应目标在目标

    如果Y是数字数组吗目标YMask,或targetsMask必须是一个dlarray

    目标序列,指定为格式化或非格式化dlarray或者一个数字数组。

    将目标指定为一个数组,其维度对应于目标序列的观测值和时间步长。例如,将目标指定为格式化的dlarray对象的格式英国电信的(批量、时间)。

    目标的观测次数必须与预测次数相同。掩码值为1对应的目标值必须是1和的通道数之间的正整数Y并且不能包含空白索引。

    如果目标是一个格式化的dlarray,则其格式必须与的格式相同Y,或与DataFormat如果Y未格式化。

    如果目标是一个非格式化dlarray或数值数组,则函数应用的格式Y或者是DataFormat目标

    提示

    格式化dlarray对象自动排列底层数据的维度,使其具有顺序“S”(空间),“C”(通道),“B”(批处理),“T”(时间),然后“U”(不明)。保证尺寸Y而且目标是一致的,当Y是一个格式化的dlarray还,指定目标作为一个格式化的dlarray

    掩码,指示要包括哪些预测元素用于损失计算,指定为dlarray对象、逻辑数组或大小相同的数字数组Y

    当掩码中的对应值分别为1和0时,该函数包含和排除用于损失计算的预测元素。

    对于掩模中的每个时间步和观测,信道维度中相应的元素必须为全1或全0。

    提示

    格式化dlarray对象自动排列底层数据的维度,使其顺序如下:“S”(空间),“C”(通道),“B”(批处理),“T”(时间)“U”(不明)。例如,dlarray对象自动用格式排列数据的维度“TSCSBS”有格式“SSSCBT”

    保证尺寸Y和面具是一致的,当Y是一个格式化的dlarray,也将掩码指定为格式化的dlarray

    掩码,指示要包括哪些目标元素以进行损失计算,指定为dlarray对象、逻辑数组或大小相同的数字数组目标

    当掩码中对应的值分别为1和0时,该函数包含和排除用于损失计算的目标元素。

    提示

    格式化dlarray对象自动排列底层数据的维度,使其顺序如下:“S”(空间),“C”(通道),“B”(批处理),“T”(时间)“U”(不明)。例如,dlarray对象自动用格式排列数据的维度“TSCSBS”有格式“SSSCBT”

    保证尺寸Y和面具是一致的,当Y是一个格式化的dlarray,也将掩码指定为格式化的dlarray

    名称-值参数

    指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

    在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

    例子:“BlankIndex”、“最后”指定与词汇表的最后一个元素对应的空白索引

    空白字符的索引,指定为逗号分隔的对,由“BlankIndex”和以下其中之一:

    • 正整数——使用具有指定索引的词汇表中的元素作为空白字符。如果“BlankIndex”是整数,那么它必须在1和的通道数之间Y包容性。

    • “最后一次”-使用词汇表的最后一个元素作为空白字符。

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串

    未格式化输入数据的维度顺序,指定为字符向量或字符串标量FMT它为数据的每个维度提供一个标签。

    的格式时dlarray对象,每个字符为数据的每个维度提供一个标签,并且必须是以下之一:

    • “S”——空间

    • “C”——频道

    • “B”-批处理(例如,样品和观察)

    • “T”-时间(例如,序列的时间步长)

    • “U”——未指明的

    您可以指定多个标记的维度“S”“U”.你可以使用标签“C”“B”,“T”最多一次。

    您必须指定DataFormat当输入数据没有格式化时dlarray

    数据类型:字符|字符串

    输出参数

    全部折叠

    CTC丢失,作为未格式化的返回dlarray标量,其基础数据类型与输入相同Y

    扩展功能

    版本历史

    介绍了R2021a

    Baidu
    map