CTC Loss InvalidArgumentError:sequence_length(b)<=时间

use*_*857 10 keras tensorflow

我尝试通过keras(ctc_batch_cost)使用tf.nn.ctc_loss时遇到此错误:

InvalidArgumentError(参见上面的回溯):sequence_length(4)<= 471

根据tf.nn.ctc_loss的文档,输入要求是:

sequence_length(b)<=所有b的时间

对于所有b,max(labels.indices(labels.indices [:,1] == b,2))<= sequence_length(b).

我很难理解这意味着什么 - 什么是b什么,什么是sequence_length(b)什么?

Ale*_*sos 5

在这种情况下b,每个示例都是一个小批量。sequence_length(b)是该示例的时间戳数。这在sequence_length传递给参数的参数中指定,该参数tf.nn.ctc_loss是序列长度的1-d张量。

  • sequence_length应该是一个张量,代表小批量中每个序列的大小。time是数据张量的第二维(应按[batch,time,...]排序)。这只是说每个示例的序列长度应小于时间维度的最大大小 (2认同)