在pytorch中,如何与优化器一起使用add_param_group()?

时间:2018-08-08 23:18:39

标签: python-3.x parameters pytorch backpropagation

文档非常模糊,没有示例代码向您展示如何使用它。的文档是

  

将参数组添加到Optimizer的param_groups。

     

当微调已冻结的预训练网络时,这很有用   可以使层可训练,并作为训练添加到优化器中   进展。

     

参数:param_group(dict)–指定张量应为   与组优化选项一起优化。 (具体)–

我假设我可以通过输入从模型的param_group获得的值来获得state_dict()参数?例如。所有的实际体重值?我之所以这样问是因为我想建立一个渐进网络,这意味着我需要不断地从新创建的卷积和激活模块中输入Adam参数。

1 个答案:

答案 0 :(得分:5)

根据文档,add_param_group方法接受一个param_group的{​​{1}}参数。使用示例:

dict

给予

import torch
import torch.optim as optim


w1 = torch.randn(3, 3)
w1.requires_grad = True
w2 = torch.randn(3, 3)
w2.requires_grad = True
o = optim.Adam([w1])
print(o.param_groups)

现在

[{'amsgrad': False,
  'betas': (0.9, 0.999),
  'eps': 1e-08,
  'lr': 0.001,
  'params': [tensor([[ 2.9064, -0.2141, -0.4037],
           [-0.5718,  1.0375, -0.6862],
           [-0.8372,  0.4380, -0.1572]])],
  'weight_decay': 0}]

给予:

o.add_param_group({'params': w2})
print(o.param_groups)