W tensorflow/core/util/ctc/ctc_loss_calculator.cc:144] No valid path found 或 loss:inf的解决方案

基于Tensorflow和Keras实现端到端的不定长中文字符检测和识别(文本检测:CTPN,文本识别:DenseNet + CTC),在使用自己的数据训练这个模型的过程中,出现如下错误,由于问题已经解决,当时的出现的问题又没有截图保存,错误又不好复现,所以只能在网上找一张截图下来。

经过查找相关资料,都是说CTC在计算loss时要求输入序列长度不小于标签长度,但是不太懂这句话啥意思。

最终在https://github.com/YCG09/chinese_ocr/issues/15这个链接下和下面这个图片发现了灵感,错误的原因就是训练数据集的label的长度太长了,导致出现loss:inf错误

  W tensorflow/core/util/ctc/ctc_loss_calculator.cc:144] No valid path found 或 loss:inf的解决方案_第1张图片

解决方法:首先在/train/train.py文件下改下这行代码(不一定需要和下方对应)

maxlabellength = 10

然后自己把训练数据集里面label长度大于10的数据删掉(有可能不一定都是10,主要是我这个数据集把label长度大于10的数据删掉对整个数据集影响不大)。这样就不会报错了,如下所示。

如此,问题成功解决。

 

你可能感兴趣的:(W tensorflow/core/util/ctc/ctc_loss_calculator.cc:144] No valid path found 或 loss:inf的解决方案)