向优化添加 nn.Parameter 张量

add a nn.Parameter tensor to the optim

假设我有一个带有参数张量的网络:

self.inital_value = nn.Parameter(torch.randn(1,96,4,4))

还有两层:

self.rgb_layers = nn.ModuleList([nn.Conv2d(96, 3, 1, 1, 0)]*2)

所以前向函数如下:

v = torch.clone(self.inital_value)
for i in range(2):
    v = self.rgb_layers[i](v)
return v

现在我定义了一个优化器。如果我只想训练第一层,我可以这样做:

opt = optim.RMSprop(model.rgb_layers[0].parameters(),lr = lr)

但是如果我只想训练张量 self.inital_value 并且我也这样做,我会得到这个错误:

'Parameter' object has no attribute 'parameters'

如何绕过这个限制?

嗯,它需要一个 Parameter 序列。你有一个 Parameter,叫做 self.initial_value

那么 [self.initial_value] 怎么样?