zoukankan      html  css  js  c++  java
  • PyTorch余弦学习率衰减

    前言

    今天用到了PyTorch里的CosineAnnealingLR,也就是用余弦函数进行学习率的衰减。

    下面讲讲定义CosineAnnealingLR这个类的对象时输入的几个参数是什么,代码示例就不放了。

    正文

    torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0, last_epoch=-1)
    
    • optimizer

      需要进行学习率衰减的优化器变量

    • T_max

      Cosine是个周期函数嘛,这里的T_max就是这个周期的一半

      如果你将T_max设置为10,则学习率衰减的周期是20个epoch,其中前10个epoch从学习率的初值(也是最大值)下降到最低值,后10个epoch从学习率的最低值上升到最大值

    • eta_min

      学习率衰减时的最小值,默认值为0

    • last_epoch

      (上次训练)最后一个epoch的索引值,默认值为-1。

      我没有测试,猜测是:如果你将其设置为20,那定义出来的scheduler的第一次step就会到第21个epoch对应的学习率。

    效果

    我的参数是:

    # optimizer学习率初值为0.0005,100个epoch,从第1个epoch(索引为0)开始训练
    scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=10, eta_min=5e-6)
    

    效果图如下:

    CosineAnnealingLR

    参考链接

    https://pytorch.org/docs/stable/optim.html?highlight=cosine#torch.optim.lr_scheduler.CosineAnnealingLR


    作者:@臭咸鱼

    转载请注明出处:https://www.cnblogs.com/chouxianyu/

    欢迎讨论和交流!


  • 相关阅读:
    Ruby--Array
    SQL--查询相同字段的数据
    Ruby--CSV
    Ruby--String
    Git常用命令
    JS Date函数操作
    FTP命令
    Rails--%w用法[转]
    Rails--export csv
    Mysql远程访问
  • 原文地址:https://www.cnblogs.com/chouxianyu/p/12573673.html
Copyright © 2011-2022 走看看