卷积神经网络的计算

转自:https://zhuanlan.zhihu.com/p/63174774

1. 卷积

卷积神经网络中的卷积是指定义好卷积核(kernel),并对图像(或者特征图,feature map)进行滑动匹配,即对应位置相乘再相加。其特点就在于能够捕捉局部的空间特征。具体过程如下图所示:

图1-二维卷积过程示例

每一个卷积核对应于一种特征提取的范式,不同的卷积核对应于不同的特征提取器,如下图所示:

图2-卷积特征提取示例

卷积操作的参数包括卷积核大小(kernel size)、步长(stride)以及边缘填充(padding)三个参数。此外对于同一步的卷积操作,可以使用多个卷积核,就能得到多张特征图。

  • 卷积核大小  :即卷积核的尺寸,通常都是正方形。上图中的大小就是3*3;
  • 步长  :卷积过程中每次滑动的距离。如上图中就是步长为1,步长成倍的增加,卷积后的特征大小就会成倍的减小。
  • 边缘填充  :为了在调整卷积后特征的大小,会在边缘填充来补齐,通常填充值为0,且上下左右对称;

卷积后的特征图大小可由下面公式进行计算,这里卷积后尺寸大小为  ,  表示输入特征图大小:

为了方便理解,这里举个栗子。对于输入维度为(255,255,3)的RGB图像,采用卷积核大小3 * 3 * 3进行卷积,步长为2,边缘填充为1,卷积核的个数为16。那么得到的相应的输出特征图大小为(255-3+4)/2+1 = 129,即129 * 129大小,一共16个。所以最终输出的张量大小为129*129*16。

图4-不同步长核边缘填充对应的卷积结果

卷积按照特征图的卷积维度不同可以分成一维卷积、二维卷积和三维卷积。

  • 一维卷积(1d conv):卷积核在一维空间进行滑动计算,通常用于对文本、股票价格等序列的处理,如图5所示。
  • 二维卷积(2d conv):卷积核在二维空间进行滑动计算,用于对图像的特征提取;
  • 三维卷积(3d conv):卷积核在三维空间进行滑动计算,用于视频数据的处理;

图5-一维卷积示例图,卷积核为[1,0,-1]

下面给出不同维度卷积所对应的输入输出以及卷积核大小的对应情况。out_channels也就对应于卷积核的个数。

图6-卷积类型和输入大小的对应关系图7-卷积类型和卷积核大小的对应关系图8-卷积类型和输出大小的对应关系

下面将给大家介绍卷积的一些相关计算,默认都是2d卷积。

3. 卷积参数量的计算

对于一层卷积而言,其中的每个卷积核的参数量即为同卷积核的大小,那么对于有  个卷积核的卷积层而言,并加上了偏置项。其参数量  为:

4. 卷积Flops的计算

衡量卷积计算量的指标是FLOPs(Floating Point Operations,浮点运算次数)。一次乘法和一次加法表示一个浮点运算次数。那么每一个卷积每一次的滑动卷积的计算量就是 ,那么在  的图上进行卷积就可以计算得到如下计算公式,也就是参数量乘以卷积图的尺寸:

5. 感受野的计算

感受野(eceptive Field)是指卷积的输出结果对应于到输入中的区域大小。是设计多层卷积神经网络的一个重要依据。随着卷积层数的增加,对应到原始输入的感受野也会逐渐增大。层数  对应到输入的感受野  的计算公式如下:

原文地址:https://www.cnblogs.com/lyp1010/p/11752901.html

时间: 2024-10-12 21:32:22

卷积神经网络的计算的相关文章

深入浅出——搞懂卷积神经网络误差分析(一)

第一部分 全连接网络的权值更新 卷积神经网络使用基于梯度的学习方法进行监督训练,实践中,一般使用随机梯度下降(机器学习中几种常见的梯度下降方式)的版本,对于每个训练样本均更新一次权值,误差函数使用误差平方和函数,误差方式采用平方误差代价函数. 注:本文主要按照参考文献中内容来写的,其中某些部分加入了自己解释,此文内容不断更新充实中,直到让人可以看完之后完全了解卷积神经网络的计算过程. 1.1 前向传播中样本的误差以及每层的输出 全连接区的第l层(l来表示当前层)的输出函数为: 全部训练集上的误差

卷积神经网络物体检测之感受野大小计算

学习RCNN系列论文时, 出现了感受野(receptive field)的名词, 感受野的尺寸大小是如何计算的,在网上没有搜到特别详细的介绍, 为了加深印象,记录下自己对这一感念的理解,希望对理解基于CNN的物体检测过程有所帮助. 1 感受野的概念 在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小. RCNN论文中有一段描述,Alexnet网络pool5输出的特征图上的像素在输入图像上有很大的感受野(have very

CV学习资料《卷积神经网络与视觉计算》+《深度学习实践计算机视觉》+《视觉SLAM十四讲从理论到实践》电子资料代码分析

视觉和图形学真是一家,基础都一样! 如果学习图像识别,计算机视觉,推荐电子书<视觉SLAM十四讲:从理论到实践>,系统介绍了视觉SLAM(同时定位与地图构建)所需的基本知识与核心算法,既包括数学理论基础,如三维空间的刚体运动.非线性优化,又包括计算机视觉的算法实现,例如多视图几何.回环检测等. 一个周读完了,代码很清晰!Particle Filtering,KF,EKF, Batch Optimization, Lie Group,ICP,LK光流... 尤其惊喜的是文末作者看好的IMU-SL

深度学习方法(十):卷积神经网络结构变化——Maxout Networks,Network In Network,Global Average Pooling

技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 最近接下来几篇博文会回到神经网络结构的讨论上来,前面我在"深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning"一文中介绍了经典的CNN网络结构模型,这些可以说已经是家喻户晓的网络结构,在那一文结尾,我提到"是时候动一动卷积计算的形式了",原因是很多工作证明了,在基本的CNN卷积计算模式之外,很多简

Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1

3.Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1 http://blog.csdn.net/sunbow0 Spark MLlib Deep Learning工具箱,是根据现有深度学习教程<UFLDL教程>中的算法,在SparkMLlib中的实现.具体Spark MLlib Deep Learning(深度学习)目录结构: 第一章Neural Net(NN) 1.源码 2.源码解析 3.实例 第二章D

Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.2

3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.2 http://blog.csdn.net/sunbow0 第三章Convolution Neural Network (卷积神经网络) 2基础及源码解析 2.1 Convolution Neural Network卷积神经网络基础知识 1)基础知识: 自行google,百度,基础方面的非常多,随便看看就可以,只是很多没有把细节说得清楚和明白: 能把细节说清

CNN卷积神经网络新想法

最近一直在看卷积神经网络,想改进改进弄出点新东西来,看了好多论文,写了一篇综述,对深度学习中卷积神经网络有了一些新认识,和大家分享下. 其实卷积神经网络并不是一项新兴的算法,早在上世纪八十年代就已经被提出来,但当时硬件运算能力有限,所以当时只用来识别支票上的手写体数字,并且应用于实际.2006年深度学习的泰斗在<科学>上发表一篇文章,论证了深度结构在特征提取问题上的潜在实力,从而掀起了深度结构研究的浪潮,卷积神经网络作为一种已经存在的.有一定应用经验的深度结构,重新回到人们视线,此时硬件的运算

TensorFlow框架(4)之CNN卷积神经网络详解

1. 卷积神经网络 1.1 多层前馈神经网络 多层前馈神经网络是指在多层的神经网络中,每层神经元与下一层神经元完全互连,神经元之间不存在同层连接,也不存在跨层连接的情况,如图 11所示. 图 11 对于上图中隐藏层的第j个神经元的输出可以表示为: 其中,f是激活函数,bj为每个神经元的偏置. 1.2 卷积神经网络 1.2.1 网络结构 卷积神经网络与多层前馈神经网络的结构不一样,其每层神经元与下一层神经元不是全互连,而是部分连接,即每层神经层中只有部分的神经元与下一层神经元有连接,但是神经元之间

卷积神经网络CNN

本文学习笔记的部分内容參考zouxy09的博客,谢谢!http://blog.csdn.net/zouxy09/article/details/8775360 什么是卷积 卷积假设改名为"加权平均积",就会非常好理解了.卷积的离散形式就是经常使用的加权平均.而连续形式则可理解为对连续函数的加权平均.假如我们观測或计算出一组数据.但数据因为受噪音的污染并不光滑.我们希望对其进行人工处理. 那么.最简单的方法就是加权平均.实际上加权平均是两个序列在做离散卷积,当中一个序列是权重,还有一个序