如何解决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 举报,一经查实,本站将立刻删除。