在pytorch中通过nn.init.constant和(bias=1)初始化偏差之间的区别

difference between initializing bias by nn.init.constant and (bias=1) in pytorch

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

有什么区别:

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

nn.Linear(shape, bias=0)

方法 nn.init.constant_ 接收一个要初始化的参数和一个用于初始化它的常量值。在您的例子中,您使用它来初始化值为 0 的卷积层的偏置参数。

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

一个好的做法是从 PyTorch 的每一层默认初始化技术开始。这是通过创建层来完成的,pytorch 隐式地初始化它们。在更高级的开发阶段,您还可以根据需要明确更改它。

有关详细信息,请参阅 nn.Linear and nn.Conv2d 的官方文档。