官方文档在​​这里​​。

conv2d具体不做介绍了,本篇只做pytorch的API使用介绍.


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)


input张量

input为入参,其shape必须为4维的,其中每一维度含义如下

N:Batch Number

C:Num of Channles

H:Height

W:Width

参数

基本同nn.conv1d,可以参考​​这里​​。


相对比tensorflow,tensorflow的conv2d没有out_channels入参,但是它的out_channels是通过filter参数的最后一维指定的。 所以pytorch的conv2d里的in_channels,out_channels,kernel_size的参数相当于tensorflow里conv2d的filter参数。
有关tensorflow的conv2d之前也写过一篇,可以参考​​这里​


计算公式

【pytorch】nn.conv2d的使用_2d

输出张量的shape

【pytorch】nn.conv2d的使用_tensorflow_02

样例代码

x = torch.linspace(1, 1000, 1000).view(1, 10, 20,5)
conv2d = nn.Conv2d(10,20, kernel_size=(2,2))
y = conv2d(x)

print('y shape = ', y.shape)
print('weight shape = ', conv2d.weight.shape)

【pytorch】nn.conv2d的使用_ide_03