1.stepLR:
這個(gè)調(diào)度器有2個(gè)重要的參數(shù)闻葵。第一個(gè)參數(shù)是步長(zhǎng)娃惯,它表示學(xué)習(xí)率多少輪改變一次禽翼,第二個(gè)參數(shù)是gamma简卧,它決定學(xué)習(xí)率必須改變多少兔魂。
scheduler = StepLR(optimizer,step_size = 30,gamma = 0.1)
for eroch in range(100):
scheduler.step()
train(...)
validate(...)
2.MultiStepLR:
scheduler = MultiStepLR(optimizer,milestones=[30,80],gamma=0.1)
for eroch in range(100):
scheduler.step()
train(...)
validate(...)
3. ExponentiaILR:
每一輪都將學(xué)習(xí)率乘上gamma值
4. ReduceLROnPlateau:
這是常用的學(xué)習(xí)率策略之一。應(yīng)用本策略時(shí)举娩,當(dāng)特定的度量指標(biāo)析校,如訓(xùn)練損失构罗、驗(yàn)證損失或準(zhǔn)確率不在變化時(shí),學(xué)習(xí)率就會(huì)改變勺良。通用實(shí)踐是講學(xué)習(xí)率的原始值降低為原來(lái)的1/2~1/10绰播。
optimizer = torch.optim.SGD(model.parameters(),lr = 0.1,momentum=0.9)
scheduler = ReduceLROnPlateau(optimizer,'min')
for epoch in range(100):
train(...)
val_loss = validate(...)
scheduler.step(val_loss)