当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python mxnet.gluon.loss.CTCLoss用法及代码示例

用法:

class mxnet.gluon.loss.CTCLoss(layout='NTC', label_layout='NT', weight=None, **kwargs)

参数

  • layout(str, default 'NTC') - 预测张量的布局。 ‘N’、‘T’、‘C’分别代表批量大小、序列长度和alphabet_size。
  • label_layout(str, default 'NT') - 标签的布局。 “N”、“T”分别代表批量大小和序列长度。
  • weight(float or None) - 损失的全局标量权重。

基础: mxnet.gluon.loss.Loss

联结主义时间分类损失。

输入:
  • pred:未归一化的预测张量(在softmax之前)。它的形状取决于layout.如果layout是“TNC”,pred 应该有形状(sequence_length, batch_size, alphabet_size).请注意,在最后一个维度中,索引alphabet_size-1保留作为空白标签供内部使用。所以alphabet_size是实际字母大小的一加。
  • label:从零开始的标签张量。它的形状取决于label_layout.如果label_layout是“TN”,label应该有形状(label_sequence_length, batch_size).
  • pred_lengths: 可选(默认无),用于指定不同时每个条目的长度pred同一批次中的条目具有不同的长度。pred_lengths应该有形状(batch_size,).
  • label_lengths: 可选(默认无),用于指定不同时每个条目的长度label同一批次中的条目具有不同的长度。label_lengths应该有形状(batch_size,).
输出:
  • loss: 输出损失有形状(batch_size,).

示例: 假设词汇是[a, b, c],在一批中我们有三个序列‘ba’, ‘cbb’, and ‘abac’。我们可以将标签索引为{‘a’: 0, ‘b’: 1, ‘c’: 2, blank: 3}.然后alphabet_size应为 4,其中标签 3 保留供内部使用CTCLoss.然后我们需要用-1做一个长方形label张量:

[[1, 0, -1, -1],
 [2, 1,  1, -1],
 [0, 1,  0,  2]]

参考

Connectionist 时间分类:使用循环神经网络标记未分段的序列数据

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 mxnet.gluon.loss.CTCLoss。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。