填充的目的:避免每次卷积都使数据大小减小,导致无法进行更深层次的卷积。
填充的操作:在数据周围添加额外的行和列,是的输出大小达到我们想要的结果(比如得到更大的输出 )。
步幅的目的:较快速度的减小数据尺寸。
步幅的操作:控制卷积核每次移动的大小。
代码
import torch
from torch import nn
def comp_conv2d(conv2d,X):
X = X.reshape((1,1)+X.shape)#这里shape从(8,8)变成(1,1,8,8)
Y = conv2d(X)
return Y.reshape(Y.shape[2:])
conv2d = nn.Conv2d(1,1,kernel_size=3,padding=1)
X = torch.rand(size=(8,8))
comp_conv2d(conv2d,X).shape
conv2d = nn.Conv2d(1,1,kernel_size=(5,3),padding=(2,1))
comp_conv2d(conv2d,X).shape