什么是卷积?

课堂笔记|课程链接:土堆说卷积操作(可选看)_哔哩哔哩_bilibili

目录

官方文档如何介绍的卷积?

根据理论,手算一下卷积操作

实践,用代码验证一下计算结果

官方文档如何介绍的卷积?

官方文档:torch.nn — PyTorch 2.0 documentation

看看conv2d的功能:torch.nn.functional.conv2d — PyTorch 2.0 documentation

参数如下

根据理论,手算一下卷积操作

对应位置的数相乘加在一起 

实践,用代码验证一下计算结果

1.先设置好输入和卷积核

import torch
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
kernel = torch.tensor([[1, 2, 1],
                       [0, 1, 0],
                       [2, 1, 0]])
print(input.shape)
print(kernel.shape)

运行结果:

2.在print之前加两行: 

input = torch.reshape(input, (1, 1, 5, 5))  # 通道数为1,batch_size为1,数据维度为5×5
kernel = torch.reshape(kernel, (1, 1, 3, 3))

print的运行结果:

3.stride是干嘛的?

进行一次卷积,以stride=1为例

先在最上面import torch.nn.functional as F,然后在最下面敲

output = F.conv2d(input, kernel, stride=1)
print(output)

运行结果:

可见,与理论一致

如果stride=2呢?

output2 = F.conv2d(input, kernel, stride=2)
print(output2)

运行结果:

tensor([[[[10, 12],
               [13, 3]]]])

 4.padding是干嘛的?

输入图像四周填充一圈0

 跑下代码看看:

output3 = F.conv2d(input, kernel, stride=1, padding=1)
print(output3)

运行结果:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值