chinese_ocr icon indicating copy to clipboard operation
chinese_ocr copied to clipboard

在处理训练数据的时候label存在问题

Open xxlxx1 opened this issue 6 years ago • 12 comments

如果使用的数据label长度都相同的时候不会有问题,换了新的数据,label长度不同,因为新的batch是直接把新的值覆盖在上一个batch的label上的,train.py :104行,就会造成不符合事实的label。 应该加一句 labels[i, len(str):] = 10000 在105行,还原padding的值

xxlxx1 avatar Dec 17 '18 11:12 xxlxx1

恩,是的

YCG09 avatar Dec 26 '18 07:12 YCG09

@xxlxx1 我在训练不定长label的数据时,acc一直为0,按你的建议改了后还是一直为0,但是我训练作者提供定长的合成中文数据集训练时acc表现就很正常,请问你这样做了以后训练就正常了吗?

Govan111 avatar Feb 18 '19 08:02 Govan111

@Govan111 我现在结果都正常,你可以试试debug到计算acc的地方,看看结果到底预测成什么了

xxlxx1 avatar Feb 20 '19 06:02 xxlxx1

@Govan111 我是加入了计算编辑距离,所以写了个回调函数计算acc和编辑距离,keras自带的计算acc地方就debug不到了

xxlxx1 avatar Feb 20 '19 06:02 xxlxx1

@xxlxx1 我尝试了加大学习率和迭代次数,acc有升高,但还是很低,在0.4以下。我期望值是在0.8以上的,所以还在想办法。

Govan111 avatar Feb 20 '19 06:02 Govan111

@Govan111 我使用学习率0.001在多个数据集上(自己准备的,打印体手写体都有)都能达到0.8-0.9多的acc,有可能是你数据集问题,也有可能是你计算acc的问题,因为我觉得这个代码计算acc有些问题,使用loss为0记作一个正确的样本的

xxlxx1 avatar Feb 20 '19 07:02 xxlxx1

请问下我的训练样本label长度不等,按照您给的建议在105行加了代码,为什么还是报错,Saw a non-null label (index >= num_classes - 1) following a null label, batch: 1 num_classes: 11 labels

foundersix avatar Jun 01 '19 11:06 foundersix

我也是报一样的错?请问您解决了吗 @foundersix 顺便我把nclass+2的话就不会报错了,不理解

P5best avatar Sep 03 '19 09:09 P5best

@P5best 我解决了。。他的分类数估计要对应上。。在代码里,因为我修改了分类数

foundersix avatar Sep 05 '19 12:09 foundersix

@foundersix 您最后loss能到多少呢,我loss基本在2左右就下不去了,如果长度不够10他都用10000来补充,这个10000会加入到训练吗

P5best avatar Oct 11 '19 02:10 P5best

@foundersix 您最后loss能到多少呢,我loss基本在2左右就下不去了,如果长度不够10他都用10000来补充,这个10000会加入到训练吗

年代久远,有点忘了,但是loss应该和你差不多。。

foundersix avatar Oct 14 '19 05:10 foundersix

@xxlxx1 我尝试了加大学习率和迭代次数,acc有升高,但还是很低,在0.4以下。我期望值是在0.8以上的,所以还在想办法。

你好,我也遇到了你这种问题,请问你怎么解决的?

shining-love avatar Jun 24 '20 02:06 shining-love