基於Tensorflow和Keras實現端到端的不定長中文字符檢測和識別(文本檢測:CTPN,文本識別:DenseNet + CTC),在使用自己的數據訓練這個模型的過程中,出現如下錯誤,由於問題已經解決,當時的出現的問題又沒有截圖保存,錯誤又不好復現,所以只能在網上找一張截圖下來。
經過查找相關資料,都是說CTC在計算loss時要求輸入序列長度不小於標簽長度,但是不太懂這句話啥意思。
最終在https://github.com/YCG09/chinese_ocr/issues/15這個鏈接下和下面這個圖片發現了靈感,錯誤的原因就是訓練數據集的label的長度太長了,導致出現loss:inf錯誤
解決方法:首先在/train/train.py文件下改下這行代碼(不一定需要和下方對應)
maxlabellength = 10
然后自己把訓練數據集里面label長度大於10的數據刪掉(有可能不一定都是10,主要是我這個數據集把label長度大於10的數據刪掉對整個數據集影響不大)。這樣就不會報錯了,如下所示。
如此,問題成功解決。