Error-InvalidArgumentError: sequence_length(0) <= 80

文章讨论了一个在使用CTCLoss时遇到的错误,即sequence_length超过了max_time_step。问题源于数据集中的input_len与模型输出的序列长度不匹配。解决方案是确保数据集中的input_len设置与模型输出的时间序列长度一致,例如模型输出[None,80,94],则input_len应设为80。此外,提到了使用Dense层和softmax激活函数对模型进行配置。

Error:InvalidArgumentError: sequence_length(0) <= 80

原因: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)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值