微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CTC 损失计算错误

如何解决CTC 损失计算错误

Python 的输入:

sequence1 = [0,1] 
output1 = [[1,0],[0,1,0]]
loss = tf.compat.v1.nn.ctc_loss(
                               labels=tf.sparse.from_dense([sequence1]),inputs=np.array([output1]).astype('float32'),sequence_length=[2],time_major = False
                               )
print(loss.numpy())

Python 的输出

array([1.2408944],dtype=float32)

Mathematica 的输入:

CTCLossLayer[<|
   "Input" -> {{1,0},{0,0}},"Target" -> {1,2} (* Index starts from 1 and not 0 *)
|>]

Mathematica 的输出

0.

因为我的序列是 [0,1] 并且它是一种热编码(当字符数为 2 + 1(对于 CTC)时)是 [[1,0]] - nn.ctc_loss 不应该是 {{ 1}}?就像在 Mathematica 中一样?谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。