pytorch框架學習(12) 學習率調整策略

2021-10-02 22:16:18 字數 2636 閱讀 9048

主要方法:

1.steplr

調整方式:lr = lr * gamma

2.multisteplr

調整方式:lr = lr * gamma

milestones =[50

,125

,160

]scheduler_lr = optim.lr_scheduler.multisteplr(optimizer, milestones, gamma=

0.1)

調整方式:lr = lr * gamma ** epoch

# 監控的指標

lr_init =

0.1weights_1 = torch.randn((6

,3,5

,5))

weights_2 = torch.ones((5

,5))

optimizer = optim.sgd([,

], lr=lr_init)

lambda1 =

lambda epoch:

0.1**

(epoch //20)

lambda2 =

lambda epoch:

0.95

** epoch

scheduler = torch.optim.lr_scheduler.lambdalr(optimizer, lr_lambda=

[lambda1, lambda2]

)lr_list, epoch_list =

list()

,list()

for epoch in

range

(max_epoch)

:for i in

range

(iteration)

:# train(...)

optimizer.step(

) optimizer.zero_grad(

) scheduler.step())

)print

('epoch:, lr:{}'

.format

(epoch, scheduler.get_lr())

)plt.plot(epoch_list,

[i[0

]for i in lr_list]

, label=

"lambda 1"

)plt.plot(epoch_list,

[i[1

]for i in lr_list]

, label=

"lambda 2"

)plt.xlabel(

"epoch"

)plt.ylabel(

"learning rate"

)plt.title(

"lambdalr"

)plt.legend(

)plt.show(

)

有序調整:step、multistep、exponential和cosineannealing

自適應調整:reducelronpleateau

自定義調整:lambda

學習率初始化:設定較小數:0.01,0.001,0.0001

pytorch 深度學習框架

定義網路 net net 定義資料 資料預處理,1.轉為tensor,2.歸一化 transform transforms.compose transforms.totensor transforms.normalize 0.5 0.5 0.5 0.5 0.5 0.5 訓練集 trainset to...

深度學習框架 PyTorch(一)

pytorch是基於python的開源深度學習框架,它包括了支援gpus計算的tensor模組以及自動求導等先進的模組,被廣泛應用於科學研究中,是最流行的動態圖框架。pytorch的運算單元叫作張量tensor。我們可以將張量理解為乙個多維陣列,一階張量即為一位陣列,通常叫作向量vector 二階張...

Pytorch框架學習(11) 優化器

pytorch的優化器 管理並更新模型中可學習引數的值,使得模型輸出更接近真實標籤 基本方法 optim.sgd 隨機梯度下降法 optim.adagrad 自適應學習率梯度下降法 optim.rmsprop adagrad的改進 optim.adadelta adagrad的改進 optim.ad...