P16 卷积操作 Convolution Layers卷积层

#P16 卷积操作 Convolution Layers卷积层

torch.nn#torch.nn是对torch.nn.functional的一个封装,更利于使用
torch.nn.functional#更细

#nn_conv.py
import torch
import torch.nn.functional as F#将torch.nn.functional赋予给F,后面调用可以直接用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]])#有几层中括号就是几维矩阵,这里是二维[[]]

#torch.reshape进行尺寸变换,直观上是将shape从2个数变为4个数
input = torch.reshape(input, (1, 1, 5, 5))#输入
kernel = torch.reshape(kernel, (1, 1, 3, 3))#权重,也称为卷积核

print(input.shape)
print(kernel.shape)

output = F.conv2d(input, kernel, stride=1)#stride=1每次移动步进为1,水平移动和竖直移动步进都是1,先水平移动再竖直移动
print(output)

output2 = F.conv2d(input, kernel, stride=2)#stride=2每次移动步进为2,水平移动和竖直移动步进都是1,先水平移动再竖直移动
print(output2)

output3 = F.conv2d(input, kernel, stride=1, padding=1)#padding=1在输入两边和上下填充一行,相当于填充了一圈,默认不进行填充
print(output3)

"""
#运行结果
torch.Size([1, 1, 5, 5])
torch.Size([1, 1, 3, 3])
tensor([[[[10, 12, 12],
          [18, 16, 16],
          [13,  9,  3]]]])
tensor([[[[10, 12],
          [13,  3]]]])
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]]]])
"""


#torch.nn.functional.conv2d附官方网址和说明

#torch.nn.functional.conv2d网址
https://pytorch.org/docs/stable/generated/torch.nn.functional.conv2d.html#torch.nn.functional.conv2d

#torch.nn.functional.conv2d说明
torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) → Tensor
Applies a 2D convolution over an input image composed of several input planes.
This operator supports TensorFloat32.
See Conv2d for details and output shape.


#torch.nn.Conv2d附官方网址和说明

#torch.nn.Conv2d网址
https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html#torch.nn.Conv2d

#torch.nn.Conv2d说明
torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None)

#torch.nn.functional.conv2d附官方网址和说明

#torch.nn.functional.conv2d网址
https://pytorch.org/docs/stable/generated/torch.nn.functional.conv2d.html#torch.nn.functional.conv2d
 

#torch.nn.Conv2d附官方网址和说明

#torch.nn.Conv2d网址
https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html#torch.nn.Conv2d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西西与东东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值