训练笔记 Fine tune my first semantic
作者:
麦兜胖胖次 | 来源:发表于
2017-01-07 17:12 被阅读0次
Several Tricks
- 1 用了n块GPU,在softmaxoutput的时候一定要注意:
optimizer的参数设置,rescale_grad项要设置为1/n。原因是softmaxloss层在每块卡上分别进行normalize,所以在这里要除以卡的数量。
- 2 batch_size不可以太小,不然训练不稳定。batch_size减小的话,对应的learning rate也应该设置小一些。它们是互相匹配的。比如batch_size为16的时候,lr设置的是0.0016。learning_rate一定要随着epoch增大而减小。
- 3 wd不要太大了,这里设置的是0.0005,wd的作用是正则化,约束权值调整变化不要太大。
- 4 作者在训练的时候使用了alexnet的训练策略,即weight和bias的learning rate不一致。
- 5 softmax层可以设置ignore_label,不需要把不关注的label还当做一个类(比如背景类,比如不关心的其他类)。(e.g. cityscapes数据集中的为255的trainId)
- 6 在ade20k_a1 model下进行fine tune,但是不需要固定前面层,linear层不需要单独设置lr_scale (lr_mult),当然这部分的params不要fit进去。不把这部分fit进去的方法是,把symbol中的名字改了,因为用.params为网络fit参数的时候也是靠layer的名字来做的。
- 7 cityscapes的gtFine下面的label都是id,不是trainId,所以在提供的label的时候(我这里分的19类),要提供trainId而不是id,做数据预处理或者在dataiter的时候进行转换。
- 8 对于parsing任务来说,batch_size越大对于训练效果越好(毕竟再大也不可能太多张图,所以尽量大就好),batch_size为16,iteration为1000,和batch_size为8,iteration为2000,虽然图片输入个数是一致的,但是后者效果更好,因为进行了更多轮训练;但是batch_size为16,iteration为2000的效果,是远远好于8,2000组合的。
- 9 对于fully convolutional network来说,输入图片尺寸理论上可以是任意大小的。虽然在训练时crop出504×504(个人理解是为了增加data和为了提高训练效率),但是测试集完全可以输入2048*1024原图大小来生成parsing结果,效果没有差异。
本文标题:训练笔记 Fine tune my first semantic
本文链接:https://www.haomeiwen.com/subject/jlpfbttx.html
网友评论