优化器的通用用法
首先引入包:
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 之后再定义优化器(如果这个优化器更新的是这个模型的参数的话)。