pytorch 中 conv 的默认权重初始值设定项是什么?
what is the default weight initializer for conv in pytorch?
问题 显示了如何初始化 Pytorch
中的权重。但是,Pytorch
中 Conv
和 Dense
的默认权重初始值设定项是什么? Pytorch
使用什么分布?
每个pytorch
层实现方法reset_parameters
,在层初始化结束时调用该方法来初始化权重。
您可以找到层 here.
的实现
例如pytorch中调用的dense层linear
,统一初始化权重
stdv = 1. / math.sqrt(self.weight.size(1))
self.weight.data.uniform_(-stdv, stdv)
其中 self.weight.size(1)
是输入的数量。这样做是为了在训练开始时通过将其归一化为 1 来保持每一层分布的方差相对相似。您可以阅读更详细的解释here。
对于卷积层初始化基本相同。您只需通过将通道数乘以内核大小来计算输入数。
问题 Pytorch
中的权重。但是,Pytorch
中 Conv
和 Dense
的默认权重初始值设定项是什么? Pytorch
使用什么分布?
每个pytorch
层实现方法reset_parameters
,在层初始化结束时调用该方法来初始化权重。
您可以找到层 here.
例如pytorch中调用的dense层linear
,统一初始化权重
stdv = 1. / math.sqrt(self.weight.size(1))
self.weight.data.uniform_(-stdv, stdv)
其中 self.weight.size(1)
是输入的数量。这样做是为了在训练开始时通过将其归一化为 1 来保持每一层分布的方差相对相似。您可以阅读更详细的解释here。
对于卷积层初始化基本相同。您只需通过将通道数乘以内核大小来计算输入数。