Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

模型准确率的问题 #9

Open
duxiangcheng opened this issue Mar 15, 2019 · 49 comments
Open

模型准确率的问题 #9

duxiangcheng opened this issue Mar 15, 2019 · 49 comments

Comments

@duxiangcheng
Copy link

你好,我想问一下,我重新运行了一下你的代码但是21轮epoch之后,识别的准确率还是很低,达不到你所给出的效果。您觉得,这可能与什么原因有关呢?

@duxiangcheng
Copy link
Author

而且,我发现,到达一定的训练阶段,loss值会上升。想请问一下,这是怎么回事呢?

@chenjun2hao
Copy link
Owner

@duxiangcheng ,模型最近会更新一下的,到时候有修复。

@duxiangcheng
Copy link
Author

谢谢你的回复,我想请教一下你,就是前面阶段的loss降的蛮快的,但是后面阶段loss突然暴涨,这是模型导致的吗?

@freesouls
Copy link

没有改任何代码,就是用README中提供的数据从头训练(而不是finetune),21个epoch结束后显示准确率只有10%,实际应该更低,预测出来全部是“的的的的的”,不知道哪里有问题

@duxiangcheng
Copy link
Author

@freesouls 你训练21个epoch之后的loss会暴涨吗?

@freesouls
Copy link

我的loss好像没怎么变,从最开始60左右,到21个epoch结束的时候还是60左右,中间有没有下降不清楚,忘记重定向log了

@duxiangcheng
Copy link
Author

@freesouls 中间过程的loss是会降低的,但是训练达到21轮epoch的时候,loss又会上升,我也觉得很奇怪

@freesouls
Copy link

freesouls commented Mar 20, 2019

我用的是anaconda python3.6.3, cuda9.0, cudnn 7.0, pytorch 1.0.1.post2~ 是否跟pytorch的版本有问题?
@chenjun2hao 你的模型是在什么环境下得到的?我可以重新跑一下

@duxiangcheng
Copy link
Author

@chenjun2hao 我也想知道你当时跑的环境,我的是anaconda python3.6.8,cuda10.0,pytorch1.0.1

@yyfanxing
Copy link

@duxiangcheng @freesouls 你们找到解决方法了吗?我在训练时也出现了loss先下降后来不断上升的情况。

@chenjun2hao
Copy link
Owner

主要是模型不够稳定,最近会更新一下模型的。

@chenjun2hao
Copy link
Owner

@yyfanxing @duxiangcheng @freesouls ,I have update the decoder model for identificating the variable length images

@yyfanxing
Copy link

ok,I will try it again

@yyfanxing
Copy link

@chenjun2hao ,我用最新的代码进行训练,还是出现了loss突然上升的情况,到了一定阶段,loss每隔几万步就突然上升。我是用这个训练Synth90k数据,max_width改成了26,imgW为100,batch size为256,其他都没有改变。我的loss如下:
2019-03-27 09-50-23屏幕截图

@chenjun2hao
Copy link
Owner

@yyfanxing ,I think this is mainly a problem with the rmsprop optimizer,you can try SGD.

@duxiangcheng
Copy link
Author

@yyfanxing 你好,换了优化器之后,这个问题解决了吗?

@yyfanxing
Copy link

@duxiangcheng @chenjun2hao 我重新用sgd训练不会出现loss突然上升情况,但是好像准确率没有之前adam优化器训练的效果好。

@dlml
Copy link

dlml commented May 15, 2019

@yyfanxing 准确率能达到多少啊?

@Yellower
Copy link

我在自己的训练集上进行训练,训练了200个epoch左右,训练的损失在4左右,一直不下降,但在验证集上的准确率才0.62,然后在训练集上测试发现准确率才0.75,这是为什么呢?

@dlml
Copy link

dlml commented May 17, 2019

@Yellower 中文数据集吗,你自己截别的图看效果了吗,怎么样

@Yellower
Copy link

@Yellower 中文数据集吗,你自己截别的图看效果了吗,怎么样

是中英文都有的,但是图片量小才6300张。之前我用了CTC的,在模型上微调了十几轮验证集精度就有0.8的准确率了,但在这个上连训练集都达不到0.8,我学习率设的是0.001,不知道是不是太大了

@zhangchurong
Copy link

我用SGD和ADAM以及RMS都试过,在第一个epoch上效果还不错,有96%的准确率。然后就越训越差 后面的loss比刚开始还高

@dlml
Copy link

dlml commented May 20, 2019 via email

@Yellower
Copy link

@zhangchurong 你是在哪个数据上训练的呢?ReadMe里的链接上那个数据集吗?

@zhangchurong
Copy link

那实际的泛化能力怎么样呢

------------------ 原始邮件 ------------------ 发件人: "zhangchurong"[email protected]; 发送时间: 2019年5月20日(星期一) 上午9:53 收件人: "chenjun2hao/Attention_ocr.pytorch"[email protected]; 抄送: ""[email protected]; "Comment"[email protected]; 主题: Re: [chenjun2hao/Attention_ocr.pytorch] 模型准确率的问题 (#9) 我用SGD和ADAM以及RMS都试过,在第一个epoch上效果还不错,有96%的准确率。然后就越训越差 后面的loss比刚开始还高 — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

现在的测试集和训练集还是很像的 还没有测试在实际应用上测试过

@zhangchurong
Copy link

@zhangchurong 你是在哪个数据上训练的呢?ReadMe里的链接上那个数据集吗?

是的 那个数据集分成两部分 一部分训练一部分测试 把学习率调到0.0001后面稳定了很多

@wenston2006
Copy link

@freesouls 请问你的问题解决了吗?我在训练过程中也遇到类似问题,我用了300万张训练数据(标签都是定长);batchsize设为64,训练了几千次后loss降到60左右就降不下去了.

@wenston2006
Copy link

@chenjun2hao @Yellower 可否分享下你们的训练log文件?

@wenston2006
Copy link

学习率改为0.0001,第一个epoach 的loss降下来了,降到20了.

@Yellower
Copy link

Yellower commented Jul 9, 2019

@chenjun2hao @Yellower 可否分享下你们的训练log文件?

我重新在ReadMe里面提供的数据集上训练的,确实精度有90多,训练的log文件我不确定还有没有,都放在服务器上了,但最近人都不在学校,拿不到

@wenston2006
Copy link

@Yellower@chenjun2hao 了解了,我现在用完全不定长图片(40万)训练,loss降到2-3之间,但识别精度不高;不知是算法原因还是训练数据没准备好,我的训练数据最长包含35个汉字或英语字符;对于过长的图片我进行了resize(到宽度280, 高度32);对于短的图片我进行了padding;标签按照源代码里面的,在每个batch里面进行了对齐.

@Yellower
Copy link

@wenston2006 我之前用自己的数据集的时候,也是不定长的,我也是采用了和你类似的方法调整了图片大小,最后训练的精度也不高(70%多),但我的训练数据较少。然后我对这个代码也没有深入研究,所以我也不清楚是什么原因导致

@Lanme
Copy link

Lanme commented Jul 11, 2019

不定长训练的话,attention里面是不是要mask?

@Yellower
Copy link

@Lanme 我对这个不是很懂,我之前的是把不定长的图片通常调整图片大小和padding把图片变成定长的了,用mask的话要怎么操作呢?

@zhangchurong
Copy link

不定长训练的话,attention里面是不是要mask?

不需要的 直接用就可以

@Lanme
Copy link

Lanme commented Jul 11, 2019

不定长训练的话,attention里面是不是要mask?

不需要的 直接用就可以

你padding的话,会把pad的部分放进去计算softmax了吧。

@wenston2006
Copy link

从结果来看现有模型好像容易过拟合

@wenston2006
Copy link

@Lanme 你训练的模型泛化性能如何?加了mask是否效果会好些?

@lt573152873
Copy link

我想问一下,就是计算损失的时候,是不是把空白字符的损失计算上了? 按理说不应该计算空白字符的损失吧。

@junthy-me
Copy link

@chenjun2hao @Yellower 可否分享下你们的训练log文件?

我重新在ReadMe里面提供的数据集上训练的,确实精度有90多,训练的log文件我不确定还有没有,都放在服务器上了,但最近人都不在学校,拿不到

你好,请问这个项目最终你调好了吗?实际应用效果怎么样呢?因为目前我刚接触这个项目,训练了十几个batch以后,发现loss从之前的50~60 涨到了 70~ 。很是疑惑,我看了一下我运行的代码学习率设置为0.001,是否只要调小学习率就好了。还有就是我的训练数据是作者给的34万张图片,没有用那个更大的数据集,这个训练数据集的大小会对后面的识别精度造成很大影响吗?
如果方便的话,可以加我QQ:1126654139 ,不胜感激。

@Yellower
Copy link

@chenjun2hao @Yellower 可否分享下你们的训练log文件?

我重新在ReadMe里面提供的数据集上训练的,确实精度有90多,训练的log文件我不确定还有没有,都放在服务器上了,但最近人都不在学校,拿不到

你好,请问这个项目最终你调好了吗?实际应用效果怎么样呢?因为目前我刚接触这个项目,训练了十几个batch以后,发现loss从之前的5060 涨到了 70 。很是疑惑,我看了一下我运行的代码学习率设置为0.001,是否只要调小学习率就好了。还有就是我的训练数据是作者给的34万张图片,没有用那个更大的数据集,这个训练数据集的大小会对后面的识别精度造成很大影响吗?
如果方便的话,可以加我QQ:1126654139 ,不胜感激。

我当时训练用的是作者给的那个图片,很容易就训练到90了,具体的设置忘了,你可以调整学习率尝试一下。另外,损失会有波动,只要不会发散就可以,你多训练几个epoch看看

@junthy-me
Copy link

junthy-me commented Feb 18, 2020 via email

@Yellower
Copy link

Yellower commented Feb 18, 2020 via email

@junthy-me
Copy link

junthy-me commented Feb 18, 2020 via email

@Yellower
Copy link

Yellower commented Feb 18, 2020 via email

@junthy-me
Copy link

junthy-me commented Feb 18, 2020 via email

@Yellower
Copy link

Yellower commented Feb 18, 2020 via email

@un-human
Copy link

@Yellower 后续你怎么解决你 识别问题的? 有使用作者的源码吗? 还是有另外的源码?
看你们的评论 我就不下载下来跑了。。。。。

@leayz-888
Copy link

为什么我用自己的数据集识别出来第一个字符是错的 后面的全对呢?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests