赞
踩
运行前提 data_my中用空的images文件夹,无txt文件
%cd /content/drive/MyDrive/CRNN-v1
# 在运行该文件时,必须采用绝对路径来执行,因为该文件中os.path.dirname(__file__) 采用相对路径的话会输出空字符串
!python /content/drive/MyDrive/CRNN-v1/src/new_utils.py
%cd /content/drive/MyDrive/CRNN-v1
!python src/train.py
python中的os.path.dirname与os.path.dirname(file)的用法
解决方法:
import src. 语句前增加
import sys
sys.path.append("/content/drive/MyDrive/CRNN-v1") 就是src所在的路径
训练网络loss出现Nan解决办法
自己的解决方法就是降低batch,我们将训练batch从32降到12时,前两个batch都是有loss的,之后就没有了。我们继续降batch。
在colab把训练batch降到了4还是不行,可能是因为梯度爆炸。
后来发现方向不对,于是在输出loss出打断点。loss也没什么问题。
ctc要求解码长度必须小于等于原始输入长度,然后发现没什么问题。
问题应该就出在数据的问题上。
然后一步一步断点问题排除,知道了问题所在,原因是因为目标字符长度为24(CTC解码长度也为24)所导致,至于为什么现在还不清楚。
然后排查数据中,label标签长度大于等于24的数据,只有两个,然后全部剔除掉。就可以正常训练了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。