Error-InvalidArgumentError: sequence_length(0) <= 80

Error:InvalidArgumentError: sequence_length(0) <= 80

Error-InvalidArgumentError: sequence_length(0) <= 80_第1张图片

原因:ctcloss计算要求所有sequence_length要小于max_time_step,说明你的数据集中设定的sequence_length大于了max_time_step(数据集中设定的seq_len 和 模型输出的 数值不一致)。

解决如下:

这里的input_len一般设置成模型输出的特征图的时间序列长度,比如模型输出[None, 80, 94]) ,[Batch,seq_len,classes],而80就是seq_len,当然这个一般是根据图像的长度来设置,这个应该和数据集中设置的input_len一致。

#数据集中设定
input_len = np.array([self.args.width * self.args.height // mod]) #80
#模型最终输出 (None, 80, 94) 
y = tf.keras.layers.Dense(num_classes, name='dense', activation='softmax')(x)

你可能感兴趣的:(Tensorflow,OCR,Code-error,深度学习,python,tensorflow)