chinese_ocr
chinese_ocr copied to clipboard
在处理训练数据的时候label存在问题
如果使用的数据label长度都相同的时候不会有问题,换了新的数据,label长度不同,因为新的batch是直接把新的值覆盖在上一个batch的label上的,train.py :104行,就会造成不符合事实的label。 应该加一句 labels[i, len(str):] = 10000 在105行,还原padding的值
恩,是的
@xxlxx1 我在训练不定长label的数据时,acc一直为0,按你的建议改了后还是一直为0,但是我训练作者提供定长的合成中文数据集训练时acc表现就很正常,请问你这样做了以后训练就正常了吗?
@Govan111 我现在结果都正常,你可以试试debug到计算acc的地方,看看结果到底预测成什么了
@Govan111 我是加入了计算编辑距离,所以写了个回调函数计算acc和编辑距离,keras自带的计算acc地方就debug不到了
@xxlxx1 我尝试了加大学习率和迭代次数,acc有升高,但还是很低,在0.4以下。我期望值是在0.8以上的,所以还在想办法。
@Govan111 我使用学习率0.001在多个数据集上(自己准备的,打印体手写体都有)都能达到0.8-0.9多的acc,有可能是你数据集问题,也有可能是你计算acc的问题,因为我觉得这个代码计算acc有些问题,使用loss为0记作一个正确的样本的
请问下我的训练样本label长度不等,按照您给的建议在105行加了代码,为什么还是报错,Saw a non-null label (index >= num_classes - 1) following a null label, batch: 1 num_classes: 11 labels
我也是报一样的错?请问您解决了吗 @foundersix 顺便我把nclass+2的话就不会报错了,不理解
@P5best 我解决了。。他的分类数估计要对应上。。在代码里,因为我修改了分类数
@foundersix 您最后loss能到多少呢,我loss基本在2左右就下不去了,如果长度不够10他都用10000来补充,这个10000会加入到训练吗
@foundersix 您最后loss能到多少呢,我loss基本在2左右就下不去了,如果长度不够10他都用10000来补充,这个10000会加入到训练吗
年代久远,有点忘了,但是loss应该和你差不多。。
@xxlxx1 我尝试了加大学习率和迭代次数,acc有升高,但还是很低,在0.4以下。我期望值是在0.8以上的,所以还在想办法。
你好,我也遇到了你这种问题,请问你怎么解决的?