DengPingFan / DAVSOD

Shifting More Attention to Video Salient Objection Detection, CVPR 2019 (Best Paper Finalist)
http://dpfan.net/DAVSOD/
205 stars 43 forks source link

训练收敛问题 #14

Closed eraserNut closed 4 years ago

eraserNut commented 4 years ago

你文章里说solve protocal和ECCV2018的PDBM是一致的。我用pytorch复现了PDBM,但是当预训练单张图片的时候,像文章中描述的一样设置学习率为1e-8训练到20000多个iters都不收敛。请问,在预训练单张图片的时候,PDC和final_predict模块需要设置更大的learning rate吗?第二个问题就是,我看您公布的code中,train protocal里backbone和PDC里frozen设置的是True,那么在训练video的时候,前面的模块参数是否是不更新的,这和PDBM文章里描述的用1e-8和1e-6分别训练encoder和LSTM的说法有出入,您能不能给一个能推荐的方案?

DengPingFan commented 4 years ago

Hi, Q1. 你文章里说solve protocal和ECCV2018的PDBM是一致的。我用pytorch复现了PDBM,但是当预训练单张图片的时候,像文章中描述的一样设置学习率为1e-8训练到20000多个iters都不收敛。请问,在预训练单张图片的时候,PDC和final_predict模块需要设置更大的learning rate吗? A1. Pytorch学习率设置可能和caffe会不同。所以复现PDBM的时候需要具体再调整。Pytorch应该设置更大的学习率,建议找个模型调试好的那种的默认学习率上微调。 Q2. 第二个问题就是,我看您公布的code中,train protocal里backbone和PDC里frozen设置的是True,那么在训练video的时候,前面的模块参数是否是不更新的,这和PDBM文章里描述的用1e-8和1e-6分别训练encoder和LSTM的说法有出入,您能不能给一个能推荐的方案? A2. 训练模型的时候静态部分先打开训练,其他地方冻结。然后再冻结静态部分,打开动态部分训练。最后整体再过几个epoch进行finetune。另外这个方案是去年的方案,看起来不是太优雅。这个仅仅是一个baseline。建议可以看最新的ICCV2019, CVPR20最新的几个工作了。我的主页上已经更新了最新的论文了。 http://dpfan.net/davsod/

祝好,

Deng-Ping

eraserNut commented 4 years ago

您指的静态和动态分别是什么模块呢?还有就是静态动态训练的时候单独用的学习率以及最后finetune用的学习率大概分别设置为多少训练的比较好(您可以拿caffe举例,我对比数量级在pytorch上调优)。