问题How to initialize weights in PyTorch?显示了如何在Pytorch
中初始化权重。但是,Conv
中Dense
和Pytorch
的默认权重初始值设定项是多少? Pytorch
使用什么发行版?
答案 0 :(得分:5)
每个pytorch
层实现方法reset_parameters
,在层初始化结束时调用该方法以初始化权重。
您可以找到图层here的实现。
对于在pytorch中称为linear
的密集层,例如,权重均匀初始化
stdv = 1. / math.sqrt(self.weight.size(1))
self.weight.data.uniform_(-stdv, stdv)
其中self.weight.size(1)
是输入的数量。这样做是为了通过将训练开始时的每个层的分布的方差归一化来保持每个层的分布的方差相对相似。您可以阅读更详细的解释here。
对于卷积层,初始化基本相同。您只需通过将通道数乘以内核大小来计算输入数量。