在PyTorch中,全連接層(也稱為密集層或線性層)的參數主要包括輸入特征數、輸出特征數和權重初始化方法。以下是如何設置這些參數的詳細步驟:
輸入特征數和輸出特征數:
在PyTorch中,你可以使用nn.Linear
類來創建全連接層,并通過其構造函數設置輸入特征數和輸出特征數。例如:
import torch.nn as nn
# 創建一個全連接層,輸入特征數為128,輸出特征數為64
linear_layer = nn.Linear(in_features=128, out_features=64)
權重初始化方法:
# 使用Kaiming/He初始化方法
linear_layer = nn.Linear(in_features=128, out_features=64)
linear_layer.weight.data.normal_(mean=0, std=math.sqrt(2.0 / 128))
linear_layer.bias.data.zero_()
注意:在上面的代碼中,我們使用了math.sqrt(2.0 / 128)
作為標準差,這是Kaiming/He初始化方法的一個特例,適用于ReLU激活函數。
其他可選參數:
bias
:這是一個布爾值,用于指定是否應該添加偏置項(即截距)。默認值為True
。dropout
:這是一個可選參數,用于在全連接層之后添加一個Dropout層,以減少過擬合。默認值為None
。例如,如果你想在全連接層之后添加一個Dropout層,可以這樣做:
linear_layer = nn.Linear(in_features=128, out_features=64)
dropout_layer = nn.Dropout(p=0.5) # 保留50%的神經元
綜上所述,你可以通過nn.Linear
類的構造函數來設置全連接層的輸入特征數、輸出特征數和權重初始化方法。此外,還可以根據需要添加偏置項和Dropout層。