PyTorch快速入门教程【小土堆】之土说卷积操作

发布于:2025-02-11 ⋅ 阅读:(45) ⋅ 点赞:(0)

视频地址土堆说卷积操作(可选看)_哔哩哔哩_bilibili

跟神经网路相关的工具都放在torch.nn模块里面torch.nn — PyTorch 2.5 documentation

nn.Conv1d 在由几个输入平面组成的输入信号上应用一维卷积。
nn.Conv2d 在由几个输入平面组成的输入信号上应用二维卷积。
nn.Conv3d 在由几个输入平面组成的输入信号上应用三维卷积。
nn.ConvTranspose1d 在由多个输入平面组成的输入图像上应用一维转置卷积算子。
nn.ConvTranspose2d 在由多个输入平面组成的输入图像上应用二维转置卷积算子。
nn.ConvTranspose3d 在由多个输入平面组成的输入图像上应用3D转置卷积算子。
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)) #把input尺寸从([5,5])变为([1,1,5,5])
kernel = torch.reshape(kernel, (1, 1, 3, 3)) #把kernel尺寸从([3,3])变为([1,1,3,3])

output = F.conv2d(input, kernel, stride=1)
print(output)
# 结果为
# tensor([[[[10, 12, 12],
#           [18, 16, 16],
#           [13,  9,  3]]]])

output2 = F.conv2d(input, kernel, stride=2)
print(output2)
# tensor([[[[10, 12],
#          [13,  3]]]])

output3 = F.conv2d(input, kernel, stride=1, padding=1) # 步长为1,边缘加一圈0
print(output3)
# tensor([[[[ 1,  3,  4, 10,  8],
#          [ 5, 10, 12, 12,  6],
#          [ 7, 18, 16, 16,  8],
#          [11, 13,  9,  3,  4],
#          [14, 13,  9,  7,  4]]]])


网站公告

今日签到

点亮在社区的每一天
去签到