Learning Rate Range Test (LRRT)
训练试跑,该lr scheduler从小到大增长lr,同时记录下validatin loss;人来观察在训练多少step之后,loss崩掉(diverge)了,进而为真正跑训练,挑选合适的lr区间;
"scheduler": { "type": "LRRangeTest", "params": { "lr_range_test_min_lr": 0.0001, "lr_range_test_step_size": 200, "lr_range_test_step_rate": 5, "lr_range_test_staircase": false } }
试3种不同的lr:
如上图,灰线lr增长的块,前面学得更快,某一时刻就diverge了;
橙线lr增长慢,但最终val-loss要比灰线的最低点要低;
1-Cycle
解决痛点:多GPU训练时,batch-size较大,收敛非常慢;
Cycle阶段,先上升,再下降回到起始点;Decay阶段,缓慢下降;