MASTER-pytorch
MASTER-pytorch copied to clipboard
Validation 精度很高,但是 test 精度很低
我使用了你们提供的 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 精度吗?
Hi, 新版本的测试代码test.py文件有bug,这是其他同学提交PR时产生的,还未经过测试,可使用PR之前的版本训练和测试。另外精度低是不是你的resized的widht和height设置和训练时的配置不同.
config_lmdb.json中n_class已经改为读取key.txt并自动计算出类别数了,见here
论文中精度指标是Case_ins.
为什么我验证时有95%的正确率测试时不到56为什么高和宽都一样
Hi, 新版本的测试代码test.py文件有bug,这是其他同学提交PR时产生的,还未经过测试,可使用PR之前的版本训练和测试。另外精度低是不是你的resized的widht和height设置和训练时的配置不同.
config_lmdb.json中n_class已经改为读取key.txt并自动计算出类别数了,见here
论文中精度指标是Case_ins.
pr之前的版本确定行吗,可以公开模型吗
可以分享下测试数据集吗?
说明一下,文字识别在公开的数据集上的指标是不区分大小写(Case ins)的,这是公开论文的通用做法,请阅读相关论文。代码中在训练时为简单打印的是不区分大小写的指标。而使用test.py文件推理时为了更通用,打印了两种指标,分别是区分大小写的(Sequence Accuracy)和不区分大小写的(Case_ins)指标。希望解惑。如果为了对齐论文的指标,请看Case_ins的指标。