收录网站的平台有哪些,济南营销型网站建设,主要的电子商务网站有哪些,设计制作心得体会如有帮助#xff0c;点赞收藏关注#xff01; 如需转载#xff0c;请注明出处#xff01; 今天来介绍torch模型中的优化器
优化是指在每个训练步骤中调整模型参数以减少模型误差的过程。
优化算法定义如何执行这个过程 所有优化逻辑都封装在优化器对象中。在这里#xf… 如有帮助点赞收藏关注 如需转载请注明出处 今天来介绍torch模型中的优化器
优化是指在每个训练步骤中调整模型参数以减少模型误差的过程。
优化算法定义如何执行这个过程 所有优化逻辑都封装在优化器对象中。在这里我们使用SGD优化器;此外PyTorch中还有许多不同的优化器如adam和RMSProp它们可以更好地处理不同类型的模型和数据。
复杂代码被封装在优化器里我们调用的时候只需要给出简单参数和优化器名称即可。真正起作用的就是这些很简短的语句。
随机梯度下降法SGD
一般指的mini-batch gradient descent 每一次迭代计算mini-batch的梯度然后对参数进行更新是最常见的优化方法。 缺点1SGD容易收敛到局部最优并且在某些情况下可能被困在鞍点。 缺点2选择合适的learning rate比较困难 - 对所有的参数更新使用同样的learning rate。对 于稀疏数据或者特征有时我们可能想更新快一些对于不经常出现的特征对于常出现的特征 更新慢一些这时候SGD就不太能满足要求了
#初始化
optimizer torch.optim.SGD(model.parameters(), lrlearning_rate)
...
#循环loop中
#重置模型参数的梯度。默认是累加为了防止重复计数在每次迭代时显式地将它们归零。
optimizer.zero_grad()
#计算梯度
loss.backward()
#根据上面计算的梯度调整参数
optimizer.step()RMSprop
是一种自适应学习率的优化算法在更新参数时根据历史梯度平方的加权平均来动态调整每个参数的学习率。在PyTorch中可以通过设置optim.RMSprop()来使用该优化器。
optimizer torch.optim.RMSprop(model.parameters(), lrlearning_rate)adam
是一种融合了动量梯度下降和自适应学习率的优化算法在更新参数时既考虑历史梯度的加权平均又考虑历史梯度平方的加权平均。在PyTorch中可以通过设置optim.Adam()来使用该优化器。
optimizer torch.optim.Adam(model.parameters(), lrlearning_rate)Momentum Gradient Descent
动量梯度下降是一种在梯度下降更新过程中加入动量项的优化算法可以加速收敛并减少震荡。在PyTorch中可以通过设置momentum参数实现动量梯度下降。
optimizer torch.optim.RMSprop(model.parameters(), lrlearning_rate, momentummomentum)AdaGrad
是一种自适应学习率的优化算法在更新参数时根据历史梯度信息来动态调整每个参数的学习率。在PyTorch中可以通过设置optim.Adagrad()来使用该优化器。
optimizer torch.optim.Adagrad(model.parameters(), lrlearning_rate)AdamW
是一种基于Adam优化算法的变体它引入了权重衰减weight decay来解决Adam可能存在的参数过度拟合问题。在PyTorch中可以通过设置optim.AdamW()来使用该优化器。
optimizer torch.optim.AdamW(model.parameters(), lrlearning_rate)Adadelta
是一种自适应学习率的优化算法它与RMSprop相似但引入了一个衰减系数来平衡历史梯度平方和目标函数变化量。在PyTorch中可以通过设置optim.Adadelta()来使用该优化器。
optimizer torch.optim.Adadelta(model.parameters(), lrlearning_rate)有时间再一一整理同样数据开启了不同优化器的效果。 看到这里了给个鼓励。谢谢啦