【发布时间】:2018-08-02 02:20:37
【问题描述】:
我的代码低于我认为会做我想做的事,但输出显示 require_grad 没有更改为 false。
import torch
import torch.nn as nn
encoder = nn.Sequential( nn.Conv2d(1, 4, 1), nn.Sigmoid())
for params in encoder.parameters():
params.require_grad = False
print(params.requires_grad) # prints two True statements?
我做错了什么?
【问题讨论】:
-
为什么不使用
with torch.no_grad():? -
我的目标是使用/训练网络的一部分,所以我想先冻结 80% 的层。在某个时期之后,我可以解锁更多层。我想我可以使用 torch.no_grad() 包装器并通过设置 require_grad = True 来逐个解锁卷积。
标签: python-3.x pytorch