1. 程式人生 > 程式設計 >基於pytorch中的Sequential用法說明

基於pytorch中的Sequential用法說明

class torch.nn.Sequential(* args)

一個時序容器。Modules 會以他們傳入的順序被新增到容器中。當然,也可以傳入一個OrderedDict。

為了更容易的理解如何使用Sequential,下面給出了一個例子:

# Example of using Sequential
 
model = nn.Sequential(
     nn.Conv2d(1,20,5),nn.ReLU(),nn.Conv2d(20,64,nn.ReLU()
    )
# Example of using Sequential with OrderedDict
model = nn.Sequential(OrderedDict([
     ('conv1',nn.Conv2d(1,5)),('relu1',nn.ReLU()),('conv2',('relu2',nn.ReLU())
    ]))

補充知識:pytorch 中 torch.optim.Adam 方法的使用和引數的解釋

class torch.optim.Adam(params,lr=0.001,betas=(0.9,0.999),eps=1e-08,weight_decay=0)[source]

實現Adam演算法。

它在Adam: A Method for Stochastic Optimization中被提出。

引數:

params (iterable) – 待優化引數的iterable或者是定義了引數組的dict

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

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

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

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

個人理解:

lr:同樣也稱為學習率或步長因子,它控制了權重的更新比率(如 0.001)。較大的值(如 0.3)在學習率更新前會有更快的初始學習,而較小的值(如 1.0E-5)會令訓練收斂到更好的效能。

betas = (beta1,beta2)

beta1:一階矩估計的指數衰減率(如 0.9)。

beta2:二階矩估計的指數衰減率(如 0.999)。該超引數在稀疏梯度(如在 NLP 或計算機視覺任務中)中應該設定為接近 1 的數。

eps:epsilon:該引數是非常小的數,其為了防止在實現中除以零(如 10E-8)。

讀者可結合官方文件中的引數說明和我的個人理解掌握該函式的用法。

以上這篇基於pytorch中的Sequential用法說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。