Pytorch 通过nn.init.constant初始化偏差与Pytork中(偏差=1)之间的差异

Pytorch 通过nn.init.constant初始化偏差与Pytork中(偏差=1)之间的差异,pytorch,conv-neural-network,bias-neuron,Pytorch,Conv Neural Network,Bias Neuron,我正在为AlexNet编写代码,我对如何初始化权重感到困惑 以下两者之间的区别是什么: for layer in self.cnnnet: if isinstance(layer, nn.Conv2d): nn.init.constant_(layer.bias, 0) 及 方法nn.init.constant\uu接收一个要初始化的参数和一个要初始化的常量值。在本例中,您可以使用它来初始化卷积层的偏移参数,其值为0 方

我正在为AlexNet编写代码,我对如何初始化权重感到困惑

以下两者之间的区别是什么:

        for layer in self.cnnnet:
            if isinstance(layer, nn.Conv2d):
                 nn.init.constant_(layer.bias, 0)


方法
nn.init.constant\uu
接收一个要初始化的参数和一个要初始化的常量值。在本例中,您可以使用它来初始化卷积层的偏移参数,其值为0

方法
nn.Linear
参数
bias
是一个布尔值,表示您是否希望层有偏差。通过将其设置为
0
,实际上创建的是一个完全没有偏差的线性层

一个好的实践是从PyTorch的默认初始化技术开始为每一层。这是通过创建层来完成的,pytorch会隐式地初始化它们。在更高级的开发阶段,如果需要,您还可以显式地更改它

有关更多信息,请参阅和的官方文档

nn.Linear(shape, bias=0)