优化器的通用用法
首先引入包:
1 | from torch import optim |
使用例子:
1 | optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9) |
优化器类初始化的第一个参数需要是一个 iterable
,比如 model.parameters()
。列表也是 iterable
,比如 [var1, var2]
。这个 iterable
里的元素应当是 Variabel
(也可以是 dict
)。
官方文档里提到一句话:
If you need to move a model to GPU via
.cuda()
, please do so before constructing optimizers for it. Parameters of a model after.cuda()
will be different objects with those before the call.
也就是说,将模型加载到 GPU 之后再定义优化器(如果这个优化器更新的是这个模型的参数的话)。