Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Pytorch-卷积神经网络的运算流程(中)

Pytorch-卷积神经网络的运算流程(中)

作者头像
用户6719124
发布于 2019-11-18 13:36:26
发布于 2019-11-18 13:36:26
82200
代码可运行
举报
运行总次数:0
代码可运行

以一个更加实际的情况为例

如上图中所列参数,x为1(假设batch为1)张图片、3个通道(对应于RGB三个通道)、28*28的大小。而kernel中的3代表对input的x上的三个通道上均进行卷积运算。而multi-kernels中的16泛指包括了blur、edge等16个功能、3代表对每一个通道上的逐渐进行卷积运算。

因此这里原图片所滑动的框体与kernel进行相乘运算,得到的数值进行累加得到一个数值输出到feature map。

以之前的LeNet-5结构为例

C1上的6代表使用了6个kernels,28*28的size与之前原图片的size一致。由C3的结果可知第二层的kernel为[16, 6, 3, 3],bias为16。这里要求可以从结果逆推出bias和kernel的参数值。

那么这种持续的叠加会输出什么结果呢,如下所示

最初的小汽车经过多个卷积层后依次输出的结果如上,神经网络会从这上面提取到不同的特征结构。这里一般认为第一层的feature map上得到的是一些低维的特征(整体模型、颜色、角度等),第二层的feature map上得到的是一些高维的特征(如棱形结构等),更高层的feature map上会得到一些更高维的特征(如汽车的轮胎结构、车窗位置等)。

总而言之,通过不断地卷积,可以持续提取到不同的特征。

那么在pytorch中,是如何实现这种代码的编写?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

# 这种神经网络结构的编写要用到nn.Conv2d
# 该API意为进行2D的函数卷积层计算

import torch
import torch.nn as nn

layer = nn.Conv2d(1, 3, kernel_size=3, stride=1, padding=0)
# 1代表这里假设一张黑白图片,3代表kernel的数量,另外设置kernel size为3,步长为1,不打补丁
x = torch.rand(1, 1, 28, 28)
# 随机代入数据到x
out = layer.forward(x)
# 进行一次卷积的前向运算
print(out.size())
# 输出结果的size查看一下

输出为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
torch.Size([1, 3, 26, 26])

这里不进行打padding操作,则输出的size减少

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python pytorch AI机器学习实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Pytorch-卷积神经网络的运算流程(下)
这里第一个3代表3个通道,input channel数量为之前的1,3 3 代表了所取的kernel的size。
用户6719124
2019/11/20
1.2K0
pytorch实现卷积神经网络_pytorch项目
论文链接:https://arxiv.org/pdf/1608.06993.pdf 顾名思义,DenseNet采用了高密度的跳连结构,对于每一层,使用先前所有层的输出作为输入,该层的输出将作为之后所有层的输入的一部分。因此对于一个dense模块,假设有 L L L层,那么存在 L ( L + 1 ) 2 \frac{L(L+1)}{2} 2L(L+1)​直接的连接。
全栈程序员站长
2022/11/10
5460
pytorch实现卷积神经网络_pytorch项目
「卷积神经网络」深入浅出
六月份初开启了我神经网络相关内容的学习,眨眼间一个月过去了,是时候来总结下自己这个月的学习心得了。
曼亚灿
2023/07/24
7460
「卷积神经网络」深入浅出
Pytorch定义卷积层
CNN的讲解可以看我的这篇文章CS231n 笔记:通俗理解 CNN 下面主要讲解一下如何用pytorch实现卷积神经网络
mathor
2020/01/13
1.8K0
【深度学习入门篇 ⑥】PyTorch搭建卷积神经网络
卷积神经网络是深度学习在计算机视觉领域的突破性成果,在计算机视觉领域,往往我们输入的图像都很大,使用全连接网络的话,计算的代价较高;另外图像也很难保留原有的特征,导致图像处理的准确率不高。
@小森
2024/07/25
2850
【深度学习入门篇 ⑥】PyTorch搭建卷积神经网络
深入浅出卷积神经网络及实现!
卷积神经网络CNN是深度学习中的基础知识。本文对CNN的基础原理及常见的CNN网络进行了详细解读,并介绍了Pytorch构建深度网络的流程。最后,以阿里天池零基础入门CV赛事为学习实践,对Pytorch构建CNN模型进行实现。
Datawhale
2020/06/16
9610
【卷积神经网络结构专题】一文详解LeNet(附代码实现)
近期,公众号将推出卷积神经网络结构系列专题文章,将深入浅出的为大家介绍从1998年到2020年的卷积神经网络结构,深刻体会每种网络的前世今身和进化历程。本文作为开篇,我们一起来探索一下由CNN之父Yann LeCun在1998提出来的第一个神经网络结构——LeNet。
深度学习技术前沿公众号博主
2020/06/01
3.6K0
使用Pytorch和Matplotlib可视化卷积神经网络的特征
在处理图像和图像数据时,CNN是最常用的架构。卷积神经网络已经被证明在深度学习和计算机视觉领域提供了许多最先进的解决方案。没有CNN,图像识别、目标检测、自动驾驶汽车就不可能实现。
deephub
2020/08/05
3K0
使用Pytorch和Matplotlib可视化卷积神经网络的特征
卷积神经网络——上篇【深度学习】【PyTorch】
(convolutional neural networks,CNN)是机器学习利用自然图像中一些已知结构的创造性方法,需要更少的参数,在处理图像和其他类型的结构化数据上各类成本,效果,可行性普遍优于全连接层。
来杯Sherry
2023/08/24
6030
卷积神经网络——上篇【深度学习】【PyTorch】
从零开始学Pytorch(七)之卷积神经网络基础
我们介绍卷积神经网络的卷积层和池化层,并解释填充、步幅、输入通道和输出通道的含义。
墨明棋妙27
2022/09/23
8230
卷积神经网络及经典模型
虽然图片识别对于人来说是一件轻松的事情,但是对于计算机来说,由于接受的是一串数字,对于同一个物体,表示这个物体的数字可能会有很大的不同,所以使用算法来实现这一任务还是有很多挑战的,具体来说:
Here_SDUT
2022/09/19
4.5K0
卷积神经网络及经典模型
Pytorch-卷积神经网络的运算流程(上)
这里注意由于原图为28*28,经过kernel取特征点后,feature map变为26*26,即边缘无法重复累计。这里也可以用后续讲的padding(补丁)操作进行处理。
用户6719124
2019/11/17
5260
14 | 用简单的卷积神经网络处理图像会发生什么
上一小节遗留的问题就是,我们希望能够把图像一个区域与周围上下左右各个区域关联的这种特性学习到,也就是实现平移不变性,通俗来理解,一个好一点的办法就是在一个点上,把它周围的点都加起来放在这个点上,当做这个点的数据。 听起来是不是很简单,卷积就是大概实现了这个功能,我们看一下离散卷积的公式,既然这里说离散卷积,当然还有连续卷积,不过我们现在用不到,只考虑这个离散卷积就好了。
机器学习之禅
2022/07/11
4500
14 | 用简单的卷积神经网络处理图像会发生什么
【现代深度学习技术】现代卷积神经网络01:深度卷积神经网络(AlexNet)
深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重要的技术特征是具有自动提取特征的能力。神经网络算法、算力和数据是开展深度学习的三要素。深度学习在计算机视觉、自然语言处理、多模态数据分析、科学探索等领域都取得了很多成果。本专栏介绍基于PyTorch的深度学习算法实现。 【GitCode】专栏资源保存在我的GitCode仓库:https://gitcode.com/Morse_Chen/PyTorch_deep_learning。
Francek Chen
2025/03/13
2400
【现代深度学习技术】现代卷积神经网络01:深度卷积神经网络(AlexNet)
Pytorch实现轻量去雾网络
本文复现了一个轻量级的图像去雾网络,不需要租赁服务器,使用自己的电脑就可以完成模型训练及测试。该网络基于编解码器建立,在编解码部分使用特征增强以改善整体的恢复效果。
Srlua
2024/12/18
1690
Pytorch实现轻量去雾网络
卷积神经网络(CNN)详解
CNN常用于图像识别,在深度学习中我们不可能直接将图片输入进去,向量是机器学习的通行证,我们将图片转换为像素矩阵再送进去,对于黑白的图片,每一个点只有一个像素值,若为彩色的,每一个点会有三个像素值(RGB)
Python数据科学
2021/08/12
9680
卷积神经网络(CNN)详解
【现代深度学习技术】卷积神经网络 | 图像卷积
  上节我们解析了卷积层的原理,现在我们看看它的实际应用。由于卷积神经网络的设计是用于探索图像数据,本节我们将以图像为例。
Francek Chen
2025/02/25
1580
【现代深度学习技术】卷积神经网络 | 图像卷积
卷积神经网络——中篇【深度学习】【PyTorch】
全连接层是网络里参数比重最高的地方(参数=输入通道*高*宽*输出通道*高*宽),尤其是卷积后的第一个全连接层。而卷积层参数就小得多。所以用卷积层替代全连接层,参数会更少。
来杯Sherry
2023/08/24
3280
卷积神经网络——中篇【深度学习】【PyTorch】
pyTorch入门(二)——常用网络层函数及卷积神经网络训练
上一篇《pyTorch入门(一)——Minist手写数据识别训练全连接网络》搭建了全连接层和训练的文件,做了一个最简单的Minist训练,最终的训练结果达到了97%,这篇就来介绍一下pyTorch网络层比较常用的Api和卷积层
Vaccae
2022/12/29
7740
pyTorch入门(二)——常用网络层函数及卷积神经网络训练
PyTorch: nn网络层-卷积层
卷积有一维卷积、二维卷积、三维卷积。一般情况下,卷积核在几个维度上滑动,就是几维卷积。比如在图片上的卷积就是二维卷积。
timerring
2023/07/20
4580
PyTorch: nn网络层-卷积层
推荐阅读
相关推荐
Pytorch-卷积神经网络的运算流程(下)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验