如何使用 torch.optim.lr_scheduler.OneCycleLR()?

How does one use torch.optim.lr_scheduler.OneCycleLR()?

我想在训练时使用 torch.optim.lr_scheduler.OneCycleLR()。有人可以向我解释如何使用它吗? 我从文档中得到的是它应该在每个 train_batch.

之后调用

我的困惑如下:

任何人都可以为我提供一种实现此调度程序的玩具 example/training 循环吗?

我是深度学习和 PyTorch 的新手,所以我的问题可能有点傻。

您可能会从这个线程中得到一些用处:How to use Pytorch OneCycleLR in a training loop (and optimizer/scheduler interactions)?

但是要解决你的问题:

  1. max_lr参数是否必须与优化器lr参数相同? 不,这是最大值或最高值 -- 您将试验的超参数。注意文中使用max_lr:https://arxiv.org/pdf/1708.07120.pdf

  2. 这个调度器可以和 Adam 优化器一起使用吗?那么动量是如何计算的呢? 是的。

  3. 假设我现在一次训练我的模型一些时期,我想训练更多时期。我必须重置调度程序吗? 取决于,您是否从保存的检查点加载模型?查看 PyTorch 的教程:https://pytorch.org/tutorials/beginner/blitz/neural_networks_tutorial.html#sphx-glr-beginner-blitz-neural-networks-tutorial-py