pytorch當中十種優化器optimizer

2021-10-09 04:26:59 字數 4835 閱讀 7783

1.optimizer.sgd

torch.optimizer.sgd(params, lr=

, momentum=

0, dampening=

0, weight_decay=

0, nesterov=

false

)

隨機梯度下降法

主要引數:

lr (float) – 學習率

momentum (float, 可選) – 動量因子(預設:0)

weight_decay (float, 可選) – 權重衰減(l2懲罰)(預設:0)

dampening (float, 可選) – 動量的抑制因子(預設:0)

nesterov (bool, 可選) – 使用nesterov動量(預設:false)

2.optimizer.adagrad

torch.optimizer.adagrad(params, lr=

0.01

, lr_decay=

0, weight_decay=

0)

自適應學習率下降法

主要引數:

lr (float, 可選) – 學習率(預設: 1e-2)

lr_decay (float, 可選) – 學習率衰減(預設: 0)

weight_decay (float, 可選) – 權重衰減(l2懲罰)(預設: 0)

3.optimizer.rmsprop

torch.optimizer.rmsprop(params, lr=

0.01

, alpha=

0.99

, eps=1e-

08, weight_decay=

0, momentum=

0, centered=

false

)

adagrad的一種改進

主要引數:

lr (float, 可選) – 學習率(預設:1e-2)

momentum (float, 可選) – 動量因子(預設:0)

alpha (float, 可選) – 平滑常數(預設:0.99)

eps (float, 可選) – 為了增加數值計算的穩定性而加到分母裡的項(預設:1e-8)

centered (bool, 可選) – 如果為true,計算中心化的rmsprop,並且用它的方差**值對梯度進行歸一化

weight_decay (float, 可選) – 權重衰減(l2懲罰)(預設: 0)

4.optimizer.adadelta

torch.optimizer.adadelta(params, lr=

1.0, rho=

0.9, eps=1e-

06, weight_decay=

0)

也是adgrad的一種改進

主要引數:

rho (float, 可選) – 用於計算平方梯度的執行平均值的係數(預設:0.9)

eps (float, 可選) – 為了增加數值計算的穩定性而加到分母裡的項(預設:1e-6)

lr (float, 可選) – 在delta被應用到引數更新之前對它縮放的係數(預設:1.0)

weight_decay (float, 可選) – 權重衰減(l2懲罰)(預設: 0)

5.optimizer.adam

torch.optimizer.adam(params, lr=

0.001

, betas=

(0.9

,0.999

), eps=1e-

08, weight_decay=

0)

rmsprop結合momentum

主要引數:

lr (float, 可選) – 學習率(預設:1e-3)

betas (tuple[float, float], 可選) – 用於計算梯度以及梯度平方的執行平均值的係數(預設:0.9,0.999)

eps (float, 可選) – 為了增加數值計算的穩定性而加到分母裡的項(預設:1e-8)

weight_decay (float, 可選) – 權重衰減(l2懲罰)(預設: 0)

6.optimizer.adamax

torch.optimizer.adamax(params, lr=

0.002

, betas=

(0.9

,0.999

), eps=1e-

08, weight_decay=

0)

adam增加學習率上限

主要引數:

lr (float, 可選) – 學習率(預設:2e-3)

betas (tuple[float, float], 可選) – 用於計算梯度以及梯度平方的執行平均值的係數

eps (float, 可選) – 為了增加數值計算的穩定性而加到分母裡的項(預設:1e-8)

weight_decay (float, 可選) – 權重衰減(l2懲罰)(預設: 0)

7.optimizer.sparseadam

torch.optimizer.sparseadam(params, lr=

0.001

, betas=

(0.9

,0.999

), eps=1e-

08)

稀疏版的adam

主要引數:

params (iterable) – iterable of parameters to optimize or dicts defining parameter groups

lr (float, 可選) – 學習率(預設:1e-3)

betas (tuple[float, float], 可選) – 用於計算梯度以及梯度平方的執行平均值的係數

eps (float, 可選) – 為了增加數值計算的穩定性而加到分母裡的項(預設:1e-8)

8.optimizer.asgd

torch.optimizer.asgd(params, lr=

0.01

, lambd=

0.0001

, alpha=

0.75

, t0=

1000000.0

, weight_decay=

0)

隨機平均梯度下降

主要引數

lr (float, 可選) – 學習率(預設:1e-2)

lambd (float, 可選) – 衰減項(預設:1e-4)

alpha (float, 可選) – eta更新的指數(預設:0.75)

t0 (float, 可選) – 指明在哪一次開始平均化(預設:1e-6)

weight_decay (float, 可選) – 權重衰減(l2懲罰)(預設: 0)

9.optimizer.rprop

torch.optimizer.rprop(params, lr=

0.01

, etas=

(0.5

,1.2

), step_sizes=(1e

-06,50

))

彈性反向傳播

主要引數:

lr (float, 可選) – 學習率(預設:1e-2)

etas (tuple[float, float], 可選) – 一對(etaminus,etaplis), 它們分別是乘法的增加和減小的因子(預設:0.5,1.2)

step_sizes (tuple[float, float], 可選) – 允許的一對最小和最大的步長(預設:1e-6,50)

10.optimizer.lbfgs

torch.optimizer.lbfgs(params, lr=

1, max_iter=

20, max_eval=

none

, tolerance_grad=1e-

05, tolerance_change=1e-

09, history_size=

100, line_search_fn=

none

)

一種bfgs的改進

主要引數:

lr (float) – 學習率(預設:1)

max_iter (int) – 每一步優化的最大迭代次數(預設:20))

max_eval (int) – 每一步優化的最大函式評價次數(預設:max * 1.25)

tolerance_grad (float) – 一階最優的終止容忍度(預設:1e-5)

tolerance_change (float) – 在函式值/引數變化量上的終止容忍度(預設:1e-9)

history_size (int) – 更新歷史的大小(預設:100)

人一生當中最應該珍惜的十種人

1.遇到真愛的人時,要努力爭取和她相伴一生的機會,因為當她離開時,一切都來不及了。2.遇到可以相信的朋友時,要好好和她相處下去,因為有一生中,遇到知己真的不易。3.遇到貴人時,記得好好感激,因為她是你人生的轉折點 4.遇到曾經愛過的人時,要記得感激她,因為她讓你更懂得愛。5.遇到曾經恨過的人時,要微...

黑客攻破SQL伺服器系統的十種方法

無論是使用手工試探還是使用安全測試工具,惡意攻擊者總是使用各種詭計從你的防火牆內部和外部攻破你的sql伺服器系統。既然黑客在做這樣的事情。你也需要實施同樣的攻擊來檢驗你的系統的安全實力。這是理所當然的。下面是黑客訪問和攻破執行sql伺服器的系統的十種詭計。1.通過網際網路直接連線 這些連線可以用來攻...

黑客攻破SQL伺服器系統的十種方法

無論是使用手工試探還是使用安全測試工具,惡意攻擊者總是使用各種詭計從你的防火牆內部和外部攻破你的sql伺服器系統。既然黑客在做這樣的事情。你也需要實施同樣的攻擊來檢驗你的系統的安全實力。這是理所當然的。下面是黑客訪問和攻破執行sql伺服器的系統的十種詭計。1.通過網際網路直接連線 這些連線可以用來攻...