文章目录
- 一、前置知识
- 什么是卷积操作
- 二、代码
一、前置知识
什么是卷积操作
推荐几个高赞博客:
卷积最容易理解的解释
卷积神经网络(CNN)详细介绍及其原理详解
还有pytorch官网的动态图:
pytorch卷积
二、代码
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]])
input = torch.reshape(input, (1, 1, 5, 5))
kernel = torch.reshape(kernel, (1, 1, 3, 3))
print(input.shape)
print(kernel.shape)
output1 = F.conv2d(input, kernel, stride=1)
print(output1)
output2 = F.conv2d(input, kernel, stride=2)
print(output2)
output3 = F.conv2d(input, kernel, stride=1,padding=1)
print(output3)
运行结果: