簡體   English   中英

在PyTorch中,默認情況下如何初始化圖層權重和偏差?

[英]In PyTorch how are layer weights and biases initialized by default?

我想知道默認情況下如何初始化圖層權重和偏差? 例如,如果我創建線性圖層torch.nn.Linear(5,100),則默認情況下如何初始化此圖層的權重和偏差?

權重通過以下方式初始化:

def reset_parameters(self):
    stdv = 1. / math.sqrt(self.weight.size(1))
    self.weight.data.uniform_(-stdv, stdv)
    if self.bias is not None:
        self.bias.data.uniform_(-stdv, stdv)

https://github.com/pytorch/pytorch/blob/master/torch/nn/modules/linear.py#L48-L52

PyTorch 1.0

大多數層都是使用Kaiming Uniform方法初始化的。 示例層包括Linear,Conv2d,RNN等。如果使用其他層,則應在此doc上查找該層。 如果說權重是使用U(...)初始化的,則使用其Kaiming Uniform方法。 使用LeCunn init初始化偏差,即,均布uniform(-std, std) ,其中標准偏差std為1/sqrt(fan_in)代碼 )。

PyTorch 0.4.1,0.3.1

重量和偏見使用初始化LeCunn初始化 (見秒4.6)為CONV層(代碼: 0.3.10.4.1 )。

如果要覆蓋默認初始化, 請參見此答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM