1、打开pytorch官网:PyTorch https://pytorch.org/
在左侧API工具中选择torch.nn.functional -> Convolution functions -> nn.Conv2d (二维卷积层)
如下图所示:
torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) → Tensor
参数介绍:
input: 输入
weight: 权重,更专业点叫卷积核
bias: 偏执
stride: 步幅
padding: 填充
下面举例说明上面参数的作用 :
1.当stride=1,padding=0时
import torch
import torch.nn.functional as F
#输入为二维矩阵[[],[],[],[]]是个平面,channel=1 ,batch_size=1
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]])
"""
由于上面输出只有高和宽(torch.Size([3, 3])),不满足conv2D中input参数要求,因此可以使用pytorch提供的尺寸变换(reshape)
"""
input=torch.reshape(input,(1,1,5,5))
kernel=torch.reshape(kernel,(1,1,3,3))
print(input.shape) #torch.Size([1, 1, 5, 5])
print(kernel.shape) #torch.Size([1, 1, 3, 3])
output= F.conv2d(input,kernel,stride=1) #stride表示步幅为1,横向和纵向都为1
print(output)
2. 当padding=1时,对输入图像进行填充时