主要方法:
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...