• 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()       # 进行参数更新
    
  • 相关阅读:
    ArrayList源码剖析
    Qt线程外使用Sleep
    malloc、calloc和realloc比较
    C++各大名库
    Qt 编译boost
    VC++ 设置控件显示文本的前景色、背景色以及字体
    std::map的操作:插入、修改、删除和遍历
    time.h文件中包含的几个函数使用时须注意事项
    赋值操作符和拷贝构造函数
    virtual析构函数的作用
  • 原文地址:https://www.cnblogs.com/yanghh/p/14059662.html
Copyright © 2020-2023  润新知