[英]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.1 , 0.4.1 )。
如果要覆蓋默認初始化, 請參見此答案 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.