python - required_grad 在 PyTorch 中做什么? (不要求_grad)

标签 python pytorch backpropagation resnet

我一直在尝试使用 resnet 作为 Backbone 对多类分类任务进行迁移学习。

在许多教程中,有人指出,明智的做法是再次尝试仅训练最后一层(通常是完全连接的层),同时卡住其他层。卡住将按如下方式完成:

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 的作用吗?我一直以来都“没有卡住”其他层吗?

最佳答案

好吧,这真的很愚蠢。

for param in model.parameters():
    param.required_grad = False

在这种情况下,由于我输入的错误,创建了一个新的“required_grad”。 例如,即使以下内容也不会引发错误:

for param in model.parameters():
    param.what_in_the_world = False

模型的所有参数现在都将具有 what_in_the_world 属性。

我希望没有人因此而浪费时间。

关于python - required_grad 在 PyTorch 中做什么? (不要求_grad),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59260854/

相关文章:

python - 如何正确实现反向传播

algorithm - 反向传播与反向自动微分有何相同(或不同)?

python - 操作错误(2003、 "Can' t 连接到 '127.3.138.130' (111) 上的 MySQL 服务器")

pytorch - 如何在pytorch中有效地重复时间的张量元素变量?

python - 在 Microsoft Windows 操作系统上的 Python 3.6 上使用 GDAL 安装 Fiona 和 Geopandas 失败?

python - PyTorch - 如何在评估模式下停用 dropout

python - 关于余弦相似度,损失函数和网络如何选择(我有两个方案)

python - 如何从头开始调试反向传播实现?

python - 在事件流之外运行 asyncio 协程

python - 特征选择: after or during nested cross-validation?