PyTorch优化器相关使用方式和trick集锦(持续更新ing...)

诸神缄默不语-个人CSDN博文目录

本文介绍PyTorch优化器相关的使用方法和trick。
PyTorch优化器官方文档:torch.optim — PyTorch 1.13 documentation

最近更新时间:2022.12.7
最早更新时间:2022.12.7

文章目录

  • 1. 优化器种类
  • 2. 对不同的模型参数使用不同的优化策略

1. 优化器种类

  1. SGD
  2. Adam

2. 对不同的模型参数使用不同的优化策略

  1. 都使用Adam优化器,在同一个模型实例里,根据关键词筛选出不同的模型参数:
decoder_params=[]
for pname, p in model.named_parameters():
    if 'key' in pname:
        key_params += [p]
params_id = list(map(id, key_params))
optimizer=torch.optim.Adam([{"params":key_params,"lr":0.001},
                        {"params":list(filter(lambda p:id(p) not in params_id,model.parameters()))}],lr=0.0001)
  1. 都使用Adam优化器,但是同时优化两个模型(如多模态场景中,分别对文本和图像进行嵌入,互相使用对方得到的中间数据)。在完成嵌入后,计算得到损失函数,可以通过1个优化器实现梯度更新
optimizer=torch.optim.Adam([{"params":text_encoder.parameters(),"lr":1e-5},{"params":picture_encoder.parameters()}],lr=1e-4)

你可能感兴趣的:(人工智能学习笔记,pytorch,深度学习,优化器,optimizer,梯度更新)