yinchangchang / ocr_densenet

第一届西安交通大学人工智能实践大赛(2018AI实践大赛--图片文字识别)第一名;仅采用densenet识别图中文字

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

有关训练准确率问题

loralyc opened this issue · comments

commented

您好,我下载了您的代码和数据,训练很长一段时间准确率一直在80-90徘徊,召回率一直在60-80徘徊,而F最高只有68,和您前面给出的数据差距挺大的,能请问下可能是什么原因吗?谢谢!

需要加载densenet的预训练模型

commented

@yinchangchang
您好,我再检查了一下,之前训练的时候已经有加载了densenet的预训练模型了,而且也成功下载了

以前也有其他人遇到相似的问题,后面都解决了,可能原因有以下两个:

  1. 加载densenet时候出错了,可能没有加载上
  2. pytorch,torchvision或者其他包的版本不对

建议你重新clone最新的代码,按照readme和requirement.txt新建一个虚拟环境试试

commented

@yinchangchang
您好,我昨天重新clone最近的代码,按照要求新建了虚拟环境,训练了十几个小时准确率最高只有三十几。
我检查一下发现一个可能的原因:
在加载预训练模型的时候load_state_dict()函数中,如果直接运行会报错missing key(s) in state_dict,在添加了strict=False就可以正常运行了,但似乎就没有有效的加载预训练模型的参数
请问下这个是什么原因呢?

是的,
加载预训练模型很重要的,densenet的初始化参数好,就很容易学到有效地信息

commented

@yinchangchang
但是直接运行代码好像预训练模型不能成功加载,能不能请问下您还有修改了模型结构什么的吗?
安装环境时已经安装了对应版本的包了

我这边跑起来是没有问题的

你那边的问题,可能是用了hard mining导致无法收敛,我稍微修改了下代码,你重新pull下来,再试一下

commented

你好 请问下怎么顺利加载densenet,用load_state_dict()的strict=False,正确率就在80-90%?

用最新的代码,是不需要加载densenet,我用titan xp 训练10个小时以后,是可以到94%