采用adamw优化器
时间: 2023-11-09 21:47:48 浏览: 141
详解PyTorch批训练及优化器比较.pdf
采用AdamW优化器是为了加速神经网络模型的收敛过程,并进一步优化识别结果。AdamW是一种使用了权重衰减的Adam优化算法。在AdamW中,权重衰减(Weight Decay)是在优化器之前进行的,通过在损失函数的梯度计算中引入权重衰减项来减少参数的值。此外,AdamW还利用了梯度修正参数来更新参数的值。
在使用AdamW优化器时,我们需要在训练循环中适当的位置进行权重衰减的计算。具体而言,我们需要调用loss.backward()函数来计算梯度,并在此之后执行权重衰减操作,最后再调用optimizer.step()来更新参数的值。通过这样的方式,我们可以有效地使用AdamW优化器来加速模型的训练过程,提高识别率,并减少网络的计算时间。
引用参考:
引用: 当然,最优化器应该设定 wd=0,否则它还会做一些 L2正则化,这也是我们不希望看到的。现在在权重衰减的位置中,我们可以在所有参数上写一个循环语句,并依次采用权重衰减的更新。而我们的参数应该存储在优化器的字典 param_groups 中,所以这个循环应该表示为如下语句: loss.backward() forgroupinoptimizer.param_groups(): forparamingroup['params']: param.data=param.data.add(-wd*group['lr'],param.data) optimizer.step()
引用: 以下简要地概述了 fastai 是如何实现 AdamW 的。在优化器中的阶梯函数,我们只需要使用梯度修正参数,根本不使用参数本身的值(除了权重衰减,我们将在外部处理它)。然后我们可以在最优化器之前通简单的实现权重衰减,但这仍需要在计算梯度后才能完成,否则它就会影响梯度的值。所以在训练循环中,我们必须确定计算权重衰减的位置。 loss.backward() #Dotheweightdecayhere! optimizer.step()
引用: 最后,为了进一步优化识别结果,采用AdamW(Adam with Weight decay)优化方法使网络模型加速收敛。在RaFD、BU-3DFE和Fer2013表情库上的实验表明,该方法具有较高的识别率,且减少网络计算时间。
阅读全文