adadelta演算法 PyTorch中的優化演算法

2021-10-14 08:31:38 字數 3755 閱讀 8575

呼叫:

torch.optim.sgd(params, lr=required, momentum=0, dampening=0,                 weight_decay=0, nesterov=false)
引數:

params:模型引數,可迭代型別lr:學習率,必須引數,浮點型momentum:動量引數,可選引數,浮點型,預設為0dampening:抑制動量引數,可選引數,浮點型,預設為0weight_decay:權重衰減引數,可選引數,浮點型,預設為0,(都是用l2懲罰項)nesterov:nesterov動量,可選引數,預設不支援
示例:(後面演算法的流程已知,只是選擇的方法不同)

# 選擇優化器optimizer = torch.optim.sgd(model.parameters(), lr=0.1, momentum=0.9)# 梯度清零,防止累加optimizer.zero_grad()# 反向傳播loss_fn(model(input), target).backward()# 更新引數optimizer.step()

呼叫:

torch.optim.rmsprop(params, lr=1e-2, alpha=0.99, eps=1e-8, weight_decay=0, momentum=0, centered=false)
引數:

params:模型引數,可迭代型別lr:學習率,必須引數,浮點型alpha:平滑常數,浮點型eps:防止分母為0的引數,增加演算法穩定性weight_decay:權重衰減引數,可選引數,浮點型,預設為0momentum:動量引數,可選引數,浮點型,預設為0centered:如果是true,那麼計算中心rmsprop,梯度通過它的方差估計進行標準化

呼叫:

torch.optim.adadelta(params, lr=1.0, rho=0.9, eps=1e-6, weight_decay=0)
引數

params:模型引數,可迭代型別lr:學習率,必須引數,浮點型rho:平滑常數,浮點型eps:防止分母為0的引數,增加演算法穩定性weight_decay:權重衰減引數,可選引數,浮點型,預設為0

呼叫:

torch.optim.adam(params, lr=1e-3, betas=(0.9, 0.999), eps=1e-8,                 weight_decay=0, amsgrad=false)
引數:
params:模型引數,可迭代型別lr:學習率,必須引數,浮點型betas:兩個平滑係數,元組型別。eps:防止分母為0的引數,增加演算法穩定性weight_decay:權重衰減引數,可選引數,浮點型,預設為0amsgrad:是否是使用該演算法的amsgrad變體(**

呼叫

torch.optim.adamax(params, lr=2e-3, betas=(0.9, 0.999), eps=1e-8,                 weight_decay=0)
引數

params:模型引數,可迭代型別lr:學習率,必須引數,浮點型betas:兩個平滑係數,元組型別。eps:防止分母為0的引數,增加演算法穩定性weight_decay:權重衰減引數,可選引數,浮點型,預設為0

呼叫:

torch.optim.adagrad(params, lr=1e-2, lr_decay=0, weight_decay=0, initial_accumulator_value=0, eps=1e-10)
引數:

params:模型引數,可迭代型別lr:學習率,必須引數,浮點型lr_decay:學習率衰減你數,可選引數,浮點型,預設為0weight_decay:權重衰減引數,可選引數,浮點型,預設為0initial_accumulator_value:初始化加速值,預設為0.eps:防止分母為0的引數,增加演算法穩定性

呼叫:

torch.optim.lbfgs(params,                 lr=1,                 max_iter=20,                 max_eval=none,                 tolerance_grad=1e-7,                 tolerance_change=1e-9,                 history_size=100,                 line_search_fn=none)
引數:

params:模型引數,可迭代型別lr:學習率,必須引數,浮點型max_iter:每個優化步驟的最大迭代次數,預設20max_eval:每次優化的最大函式估算數目tolerance_grad:一階最優性的終止容差tolerance_change:函式值或引數變化的終止容差history_size:更新歷史大小line_search_fn:從'strong_wolfe'或none中選乙個,預設是none

呼叫:

torch.optim.asgd(params, lr=1e-2, lambd=1e-4, alpha=0.75, t0=1e6, weight_decay=0)
引數:

params:模型引數,可迭代型別lr:學習率,必須引數,浮點型lambd:衰減項,預設1e-4alpha:eta更新的指數t0:在某點開始平均weight_decay:權重衰減引數,可選引數,浮點型,預設為0
詳細過程可以看**:

呼叫:

torch.optim.sparseadam(params, lr=1e-3, betas=(0.9, 0.999), eps=1e-8)
引數:

params:模型引數,可迭代型別lr:學習率,必須引數,浮點型betas:兩個平滑係數,元組型別。eps:防止分母為0的引數,增加演算法穩定性
‍詳細看**:

什麼是PyTorch,為何要使用PyTorch

pytorch 是torch7 團隊開發的,從它的名字就可以看出,其與torch 的不同之處在於pytorch 使用了python 作為開發語言。所謂 python first 同樣說明它是乙個以python 優先的深度學習框架,不僅能夠實現強大的gpu 加速,同時還支援動態神經網路,這是現在很多主...

從頭開始安裝python環境和pytorch等

參考資料 檢視cuda版本 將anaconda安裝到pycharm中 安裝pytorch 直接安裝anaconda,版本選擇 anaconda3 5.2.0 windows x86 64版本,按照網上教程按步驟安裝anaconda,並且在安裝完之後用在cmd下直接pip list,顯示已經安裝了的包...

演算法基礎( 演算法)

演算法基礎 演算法 hash演算法有兩種,即sha 1和md5演算法這裡先介紹md5演算法.md5產生乙個128位的hash值,在經過一寫初始樹立後,將明文分成了512位的塊,再將每一塊分成16個32位的子塊。演算法的輸出是4個32位的塊,連線起來構成128位的hash值。首先,將訊息填充到比512...