官方文档在这里。
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之前也写过一篇,可以参考这里
计算公式
输出张量的shape
样例代码
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)