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

Validation 精度很高,但是 test 精度很低 #19

Open
S-HuaBomb opened this issue Nov 8, 2021 · 5 comments
Open

Validation 精度很高,但是 test 精度很低 #19

S-HuaBomb opened this issue Nov 8, 2021 · 5 comments

Comments

@S-HuaBomb
Copy link

我使用了你们提供的 lmdb 数据集来复现论文结果,训练过程中的验证集精度很高:

[2021-10-30 06:14:34,656 - trainer - INFO] - [Step Validation] Epoch:[3/16] Step:[24000/24898] Word_acc: 0.961988 Word_acc_case_ins 0.976946Edit_distance_acc: 0.980846
[2021-10-30 06:14:36,834 - trainer - INFO] - Saving checkpoint: /root/paddlejob/workspace/output/models/MASTER_Default/example_1027_102421/checkpoint-epoch3-step24000.pdparams ...
[2021-10-30 06:14:42,358 - trainer - INFO] - Saving current best (at 3 epoch): model_best.pdparams Best word_acc: 0.961988

但是使用 test.py 读取 lmdb evaluation 数据集进行预测时得到的 Sequence Accuracy 却相去甚远。而我把 lmdb 格式的数据读取成 Image 格式并保存成 jpg 图片后再使用 test.py 预测,能得到不错的 Case_ins 精度的结果,但是 Sequence Accuracy 还是很低:

calculating metrics of IC03_867_pred
current sample idx: 0
2021-11-08 20:50:58,762 root  INFO     Sequence Accuracy: 0.429066 Case_ins: 0.950404
2021-11-08 20:50:58,762 root  INFO     Edit Distance Accuracy: 0.494192

我看到读取训练集时 transform 参数是这个类:CustomImagePreprocess,但是 test.py 的 transform 却是这个类:ResizeWeight,它们的作用都是 resize。test.py 默认读取的图片数据不是 lmdb,那么我换成直接读取 lmdb 格式的测试集:test.py,并使用跟读取训练集时 transform 参数同一个 CustomImagePreprocess 得到的测试精度就会很低。请问是什么原因呢?

还有一个问题,config_lmdb.json 中指定的 n_class 应该是论文中说的 66 类吧?

请问论文中这个表格的精度是 Case_ins 精度吗?

@wenwenyu
Copy link
Owner

wenwenyu commented Dec 14, 2021

Hi, 新版本的测试代码test.py文件有bug,这是其他同学提交PR时产生的,还未经过测试,可使用PR之前的版本训练和测试。另外精度低是不是你的resized的widht和height设置和训练时的配置不同.

config_lmdb.json中n_class已经改为读取key.txt并自动计算出类别数了,见here

论文中精度指标是Case_ins.

@qyfff
Copy link

qyfff commented Mar 15, 2023

为什么我验证时有95%的正确率测试时不到56为什么高和宽都一样

@qyfff
Copy link

qyfff commented Mar 15, 2023

Hi, 新版本的测试代码test.py文件有bug,这是其他同学提交PR时产生的,还未经过测试,可使用PR之前的版本训练和测试。另外精度低是不是你的resized的widht和height设置和训练时的配置不同.

config_lmdb.json中n_class已经改为读取key.txt并自动计算出类别数了,见here

论文中精度指标是Case_ins.

pr之前的版本确定行吗,可以公开模型吗

@qyfff
Copy link

qyfff commented Mar 18, 2023

可以分享下测试数据集吗?

@wenwenyu
Copy link
Owner

wenwenyu commented Apr 7, 2023

说明一下,文字识别在公开的数据集上的指标是不区分大小写(Case ins)的,这是公开论文的通用做法,请阅读相关论文。代码中在训练时为简单打印的是不区分大小写的指标。而使用test.py文件推理时为了更通用,打印了两种指标,分别是区分大小写的(Sequence Accuracy)和不区分大小写的(Case_ins)指标。希望解惑。如果为了对齐论文的指标,请看Case_ins的指标。

@wenwenyu wenwenyu mentioned this issue Apr 7, 2023
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

3 participants