我一直在尝试使用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
的作用吗?我是不是一直在“不冻”我的其他层呢?你知道吗
好吧,这真是太傻了。你知道吗
在这种情况下,一个新的“必修学位”是由于我的打字错误而创建的。 例如,即使以下情况也不会引发错误:
模型的所有参数现在都有一个
what_in_the_world
属性。你知道吗我希望没有人因此浪费时间。你知道吗
相关问题 更多 >
编程相关推荐