【发布时间】:2020-04-03 06:19:23
【问题描述】:
我一直在尝试使用 resnet 作为我的主干对多类分类任务进行迁移学习。
在许多教程中,都指出最好只再次训练最后一层(通常是全连接层),同时冻结其他层。冻结将这样完成:
for param in model.parameters():
param.requires_grad = False
但是,我刚刚意识到我的所有层实际上都没有冻结,并且在检查我的代码时我意识到我打错了:
for param in model.parameters():
param.required_grad = False
我写的是required_grad而不是requires_grad。
我似乎无法找到有关required_grad 的信息——它是什么,也没有它的作用。我发现的唯一一件事是它没有更改requires_grad 标志,而是有一个单独的required_grad 标志设置为False。
谁能解释required_grad 的作用?我一直“没有冻结”我的其他图层吗?
【问题讨论】:
标签: python pytorch backpropagation resnet