zoukankan      html  css  js  c++  java
  • Pytorch 之优化器

    在 pytorch 中提供了 torch.optim 方法优化我们的神经网络,torch.optim 是实现各种优化算法的包。

    1. torch.optim.SGD

       这个优化器实现的是实现随机梯度下降算法。

       SGD 是最基础的优化方法,普通的梯度下降法, 需要重复不断的把整套数据放入神经网络 NN 中训练, 这样容易陷入鞍点而使优化无法继续。

       我们使用 SGD 会把数据拆分后再分批(batch)不断放入 NN 中计算. 每次只计算批数据的损失来优化参数,这样既兼顾了性能也兼顾了并行性。

    """
    params (iterable) – 待优化参数的 iterable 对象或者是定义了参数组的 dict。
    lr (float) – 学习率,学习率较小时,收敛到极值的速度较慢; 学习率较大时,容易在搜索过程中发生震荡。
    momentum (float, 可选) – 动量因子,默认为0,即采用指数平均的权重系数,默认不采用。
    weight_decay (float, 可选) –  
    dampening (float, 可选) –  
    nesterov (bool, 可选) –  
    """
    class torch.optim.SGD(params, lr=, momentum=0, dampening=0, weight_decay=0, nesterov=False)
    

       举个例子:

    import torch
    
    optimizer = torch.optim.SGD(model.parameters(), lr=0.1, momentum=0.9)
    optimizer.zero_grad()  # 每个参数对应的 grad 属性清 0
    loss_fn(model(input), target).backward()
    optimizer.step()       # 进行参数更新
    
  • 相关阅读:
    nextLine() 、nextInt()的跳过问题
    Spring事务管理
    常见web错误码
    connect()函数
    int main(int argc,char*argv[])
    cin.getline函数
    TCP数据报结构以及三次握手(图解)
    TCP报文首部
    strtol函数
    MySQL简介
  • 原文地址:https://www.cnblogs.com/yanghh/p/14059662.html
Copyright © 2011-2022 走看看