zoukankan      html  css  js  c++  java
  • Pytorch lr_scheduler 中的 last_epoch 用法

    The last_epoch parameter is used when resuming training and you want to start the scheduler where it left off earlier. Its value is increased every time you call .step() of scheduler. The default value of -1 indicates that the scheduler is started from the beginning.

    From the docs:

    Since step() should be invoked after each batch instead of after each epoch, this number represents the total number of batches computed, not the total number of epochs computed. When last_epoch=-1, the schedule is started from the beginning.

    For example,

    >>> import torch
    >>> cc = torch.nn.Conv2d(10,10,3)
    >>> myoptimizer = torch.optim.Adam(cc.parameters(), lr=0.1)
    >>> myscheduler = torch.optim.lr_scheduler.StepLR(myoptimizer,step_size=1, gamma=0.1)
    >>> myscheduler.last_epoch, myscheduler.get_lr()
    (0, [0.1])
    >>> myscheduler.step()
    >>> myscheduler.last_epoch, myscheduler.get_lr()
    (1, [0.001])
    >>> myscheduler.step()
    >>> myscheduler.last_epoch, myscheduler.get_lr()
    (2, [0.0001])
    

    Now, if you decide to stop the training in the middle, then resume it, you can provide last_epoch parameter to schedular so that it start from where it was left off, not from the beginning again.

    >>> mynewscheduler = torch.optim.lr_scheduler.StepLR(myoptimizer,step_size=1, gamma=0.1, last_epoch=myscheduler.last_epoch)
    >>> mynewscheduler.last_epoch, mynewscheduler.get_lr()
    (3, [1.0000000000000004e-05])


    原文链接:https://stackoverflow.com/questions/62724824/what-is-the-param-last-epoch-on-pytorch-optimizers-schedulers-is-for



    如果这篇文章帮助到了你,你可以请作者喝一杯咖啡

  • 相关阅读:
    【解读】Https协议
    【解读】Http协议
    tomcat中AJP协议和HTTP协议的区别
    TOMCAT原理详解及请求过程
    Redis持久性——RDB和AOF
    redis配置文件解读
    HttpClient优化
    crontab与系统时间不一致
    天兔(Lepus)监控操作系统(OS)安装配置
    MySQL 优化之 index_merge (索引合并)
  • 原文地址:https://www.cnblogs.com/sddai/p/14627966.html
Copyright © 2011-2022 走看看