torch.nn.Conv2d.md 3.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
# torch.nn.Conv2d
### [torch.nn.Conv2d](https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html?highlight=conv2d#torch.nn.Conv2d)

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

### [paddle.nn.Conv2D](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/nn/layer/conv/Conv2D_cn.html#conv2d)

```python
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***:只支持`NCHW`的输入。  
***PaddlePaddle***:支持`NCHW``NHWC`两种格式的输入(通过`data_format`设置)。

#### 更新参数设置
***PyTorch***`bias`默认为True,表示使用可更新的偏置参数。  
***PaddlePaddle***`weight_attr`/`bias_attr`默认使用默认的权重/偏置参数属性,否则为指定的权重/偏置参数属性,具体用法参见[ParamAttr](https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/fluid/param_attr/ParamAttr_cn.html#cn-api-fluid-paramattr);当`bias_attr`设置为bool类型与PyTorch的作用一致。  

#### padding的设置
***PyTorch***`padding`只能支持list或tuple类型。它可以有3种格式:  
(1)包含4个二元组:\[\[0,0\], \[0,0\], \[padding_height_top, padding_height_bottom\], \[padding_width_left, padding_width_right\]\],其中每个元组都可使用整数值替换,代表元组中的2个值相等;  
(2)包含2个二元组:\[\[padding_height_top, padding_height_bottom\], \[padding_width_left, padding_width_right\]\],其中每个元组都可使用整数值替换,代表元组中的2个值相等;  
(3)包含一个整数值,padding_height = padding_width = padding。  
***PaddlePaddle***`padding`支持list或tuple类型或str类型。如果它是一个list或tuple,它可以有4种格式:  
(1)包含4个二元组:当 data_format 为"NCHW"时为 \[\[0,0\], \[0,0\], \[padding_height_top, padding_height_bottom\], \[padding_width_left, padding_width_right\]\],当 data_format 为"NHWC"时为\[\[0,0\], \[padding_height_top, padding_height_bottom\], \[padding_width_left, padding_width_right\], \[0,0\]\]
(2)包含4个整数值:\[padding_height_top, padding_height_bottom, padding_width_left, padding_width_right\]
(3)包含2个整数值:\[padding_height, padding_width\],此时padding_height_top = padding_height_bottom = padding_height, padding_width_left = padding_width_right = padding_width;  
(4)包含一个整数值,padding_height = padding_width = padding。如果它为一个字符串时,可以是"VALID"或者"SAME",表示填充算法。