卷积是如何计算的?
- 卷积操作简图:(类似于矩阵运算)

- 示例代码
import torch
import torch.nn.functional as F
input = torch.tensor([[1,2,0,3,1],
[0,1,2,3,1],
[1,2,1,0,0],
[5,2,3,1,1],
[2,1,0,1,1]])
kernel = torch.tensor([[1,2,1],
[0,1,0],
[2,1,0]])
print(input.shape)
print(kernel.shape)
# 需要更改数据类型适应conv2d()函数
input = torch.reshape(input,(1,1,5,5))
kernel = torch.reshape(kernel,(1,1,3,3))
print(input.shape)
print(kernel.shape)
# stride参数
output = F.conv2d(input,kernel,stride=1)
# stride = 1 步长为1,移动矩阵kernel(卷积核)的步长为1
print(output)
output = F.conv2d(input,kernel,stride=2)
# stride = 2 步长为1,移动矩阵kernel(卷积核)的步长为2
print(output)
# padding参数:填充input周围,padding为几就填充几维
output = F.conv2d(input,kernel,stride=1,padding=1)
print(output)