gehaocool / CombinedMargin-caffe

caffe implementation of insightface's combined margin method
92 stars 28 forks source link

训练log问题 #11

Closed Rashomon5487 closed 5 years ago

Rashomon5487 commented 5 years ago

您发布的训练log是从10w次之后resume的,我用你的参数配置10w次左右loss还是挺高的,是否方便提供一下0-10w之间的训练log

gehaocool commented 5 years ago

@Rashomon5487 已经上传了。 10万次那里因为磁盘空间满了所以停止了。我看了一下loss还高达9.x就没传,直接传的10万次以后的log。参数都是一样的。

Rashomon5487 commented 5 years ago

@gehaocool 谢谢~ 看到你用了4块 titanx 并且iter_size设成了2,也就是说你的minibatch的实际大小是12842=1024,我这边用了2块P40 实际minibatch大小是200*2=400 ,batch大小可能也有关系,我在10w次左右loss还在12.x

Rashomon5487 commented 5 years ago

@gehaocool 看你的log其实在10w次到17w次之间loss基本上维持稳定了,那么是不是10w次的时候就做一次学习率下降就可以呢,这样可以节省训练时间,学习率下降策略方面有没有什么经验~

gehaocool commented 5 years ago

其实我设置了iter_size=2之后忘记修改iteration次数了,发现之后也没改就让他自己跑着了。 所以实际上的epoch数比我想要的多一倍…… 这个学习率下降的策略也是仿照insightface设置的,但是guojia大神的卡是P100,有32G显存,我只好用iter_size=2来训练,实验出来大的batch_size对模型效果是有正面提升的。 我也试验过其他的学习率下降策略,但是都比较保守,一般会稍微增大第一和第二个stage的epoch数。 观察loss值可以发现在下降到一定程度趋近平稳之后,其均值也是在略微下降的,例如你说的10w~17w的阶段。但是这一阶段模型性能实际上有没有提升,需要使用验证集来验证,不能只看loss值。参考训练过程中的验证集准确率,我认为这一段的训练是有效的。 lr是训练过程中非常重要的一个超参数,不同的模型和数据可能都会有不同的最佳lr,建议你可以自己做一些实验来测试,如果OK的话,欢迎你把实验结果共享一下。

gehaocool commented 5 years ago

我的Github上有个人邮箱