[ 输入参数用法不一致 ]torch.nn.Conv2d

torch.nn.Conv2d

torch.nn.Conv2d(in_channels,
                out_channels,
                kernel_size,
                stride=1,
                padding=0,
                dilation=1,
                groups=1,
                bias=True,
                padding_mode='zeros',
                device=None,
                dtype=None)

paddle.nn.Conv2D

paddle.nn.Conv2D(in_channels,
                 out_channels,
                 kernel_size,
                 stride=1,
                 padding=0,
                 dilation=1,
                 groups=1,
                 padding_mode='zeros',
                 weight_attr=None,
                 bias_attr=None,
                 data_format='NCHW')

其中 PyTorch 的 bias 与 Paddle 的 bias_attr 用法不一致,具体如下:

参数映射

PyTorch PaddlePaddle 备注
in_channels in_channels 表示输入 Tensor 通道数。
out_channels out_channels 表示输出 Tensor 通道数。
kernel_size kernel_size 表示卷积核大小。
stride stride 表示卷积核步长。
padding padding 表示填充大小。
dilation dilation 表示空洞大小。
groups groups 表示分组数。
bias - 是否在输出中添加可学习的 bias。
padding_mode padding_mode 表示填充模式。
device - 指定 Tensor 的设备,一般对网络训练结果影响不大,可直接删除。
dtype - 指定权重参数属性的对象,一般对网络训练结果影响不大,可直接删除。
- weight_attr Tensor 的所需数据类型,PyTorch 无此参数,Paddle 保持默认即可。
- bias_attr Tensor 的所需数据类型,当bias_attr设置为 bool 类型与 PyTorch 的作用一致。
- data_format Tensor 的所需数据类型,PyTorch 无此参数,Paddle 保持默认即可。

转写示例

bias: 是否在输出中添加可学习的 bias

# PyTorch 写法
torch.nn.Conv2D(16, 33, 3, bias=True)

# Paddle 写法
paddle.nn.Conv2D(16, 33, 3)
# PyTorch 写法
torch.nn.Conv2D(16, 33, 3, bias=False)

# Paddle 写法
paddle.nn.Conv2D(16, 33, 3, bias_attr=False)