finetune的第三步没太明白
来源:5-6 fine-tune-实战
慕沐734317
2019-02-22
finetune的第三步,固定一些层次不参与训练是怎么运行的,是相当于把这些层次删除了吗?还是tensor只流过这些层一次,更新一次这些层里的参数?
还有这样做的目的是什么,有什么用处?
这样做会不会相当于把卷积网络的深度减小了?
写回答
1回答
-
正十七
2019-02-23
“固定一些层次不参与训练是怎么运行的,是相当于把这些层次删除了吗?还是tensor只流过这些层一次,更新一次这些层里的参数?”
不是删除,而是这些参数被认为是已经训练好了,在这些参数上,只做前向传播,不做后向传播进行参数的更新。
“还有这样做的目的是什么,有什么用处?”
对于卷积神经网络来说,比较低的层次可以认为是基础特征提取器,比如颜色,轮廓等。这个可以认为在不同数据集之间是可以共享的,所以可以不用训练较低层次的参数。即使要训练,也要给较低的层次一个比较小的步长(参数更新 w = w - 步长*梯度)。同理因为是fine-tune,所以上层的类别空间一般会发生变化,这样,比较高的层次的参数就需要重新训练。在课程中,使用的方法是低层不参与训练。
低层不参与训练还会使得训练速度大大提升。如果想要快速出结果,这种方法最快。但如果想达到最好的效果,低层还是需要给一个较小的步长去进行训练。
“这样做会不会相当于把卷积网络的深度减小了?”
不是,这是因为低层的参数在其他数据集上训练好的,模型的容量还是不变的。
20
相似问题
lstm的第一步输入
回答 3
trainable
回答 1