与优化函数相关的部分在torch.optim
模块中,其中包含了大部分现在已有的流行的优化方法。
如何使用Optimizer
要想使用optimizer,需要创建一个optimizer 对象,这个对象会保存当前状态,并根据梯度更新参数。
怎样构造Optimizer
要构造一个Optimizer
,需要使用一个用来包含所有参数(Tensor
形式)的iterable,把相关参数(如learning rate、weight decay等)装进去。
注意,如果想要使用.cuda()
方法来将model移到GPU中,一定要确保这一步在构造Optimizer
之前。因为调用.cuda()
之后,model里面的参数已经不是之前的参数了。
示例代码如下:
optimizer = optim.SGD(model.parameters(), lr = 0.01, momentum = 0.9)
optimizer = optim.Adam([var1, var2], lr = 0.0001)
常用参数
last_epoch
代表上一次的epoch的值,初始值为-1。
单独指定参数
也可以用一个dict的iterable指定参数。这里的每个dict都必须要params
这个key,params
包含它所属的参数列表。除此之外的key必须它的O