T = epoch * iteration_per_epoch + i warmup_iters = warm_up * iteration_per_epoch total_iters = (epochs - warm_up) * iteration_per_epoch if epoch < warm_up: lr = base_lr * 1.0 * T / warmup_iters else: T = T - warmup_iters lr = 0.5 * base_lr * (1 + math.cos(1.0 * T / total_iters * math.pi)) for param_group in optimizer.param_groups: param_group['lr'] = lr
时间: 2023-05-19 14:03:39 浏览: 196
subband_codes.zip_Epoch Extraction_gci extraction_sub_sub band
5星 · 资源好评率100%
这是一个学习率调整的代码片段,其中包括了 warm up 和 cosine annealing 两种方式。在训练过程中,前 warm_up 个 epoch 采用线性增长的方式将学习率从 0 逐渐增加到 base_lr,之后采用 cosine 函数的方式进行学习率的调整。在每个 epoch 结束时,将 optimizer 中所有参数的学习率设置为当前计算出的 lr 值。
阅读全文