我现在正在学习关于深度学习的 fast.ai 课程,课程笔记本中经常调用freeze
/unfreeze
方法。
不过,文档对这意味着什么的细节有点稀疏。文档字符串刚刚阅读Freeze up to last layer.
并Unfreeze entire model.
根据我目前的编程知识,我有根据的猜测是它使模型不可变,因此它可以与学习率查找器一起使用而无需更改它。但这仍然是一个猜测。非常感谢任何可以为我澄清这一点的人!
我现在正在学习关于深度学习的 fast.ai 课程,课程笔记本中经常调用freeze
/unfreeze
方法。
不过,文档对这意味着什么的细节有点稀疏。文档字符串刚刚阅读Freeze up to last layer.
并Unfreeze entire model.
根据我目前的编程知识,我有根据的猜测是它使模型不可变,因此它可以与学习率查找器一起使用而无需更改它。但这仍然是一个猜测。非常感谢任何可以为我澄清这一点的人!
正如您所猜测的那样,冻结可以防止神经网络层的权重在训练的反向传递期间被修改。您逐渐“锁定”每一层的权重,以减少反向传递中的计算量并减少训练时间。
如果您决定要继续训练,您可以解冻模型——迁移学习就是一个例子:从预先训练的模型开始,解冻权重,然后在不同的数据集上继续训练。当您选择冻结时,需要在足够早的冻结以获得计算加速而不会过早冻结与导致不准确预测的权重之间取得平衡。
原始论文可在arXiv上找到,值得一读。
FREEZEOUT:通过逐步冻结层来加速训练 Andrew Brock、Theodore Lim、JM Ritchi 和 Nick Weston。