0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何去理解CNN卷积层与池化层计算?

电子工程师 来源:51CTO博客gloomyfish 作者:gloomyfish 2021-04-06 15:13 次阅读

概述

深度学习中CNN网络是核心,对CNN网络来说卷积层与池化层的计算至关重要,不同的步长、填充方式、卷积核大小、池化层策略等都会对最终输出模型与参数、计算复杂度产生重要影响,本文将从卷积层与池化层计算这些相关参数出发,演示一下不同步长、填充方式、卷积核大小计算结果差异。

一:卷积层

卷积神经网络(CNN)第一次提出是在1997年,杨乐春(LeNet)大神的一篇关于数字OCR识别的论文,在2012年的ImageNet竞赛中CNN网络成功击败其它非DNN模型算法,从此获得学术界的关注与工业界的兴趣。毫无疑问学习深度学习必须要学习CNN网络,学习CNN就必须明白卷积层,池化层等这些基础各层,以及它们的参数意义,从本质上来说,图像卷积都是离散卷积,图像数据一般都是多维度数据(至少两维),离散卷积本质上是线性变换、具有稀疏与参数重用特征即相同参数可以应用输入图像的不同小分块,假设有3x3离散卷积核如下:

pIYBAGBsCaaAXhtpAAAVeBDiS9Q778.png

假设有

5x5的图像输入块

步长为1(strides=1)

填充方式为VALID(Padding=VALID)

卷积核大小filter size=3x3

则它们的计算过程与输出如下

100017588-59694-2.png

假设这个时候我们修改步长为2、填充方式为SAME,卷积核大小不变(strides=2 Padding=SAME filter size=3x3),则计算过程与输出变为如下:

100017588-59695-3.png

最终输出得到的结果我们可以称为featuremap,CNN的深度多数时候是指featuremap的个数,对多维度的输入图像计算多个卷积核,得到多个featuremap输出叠加,显示如下:

100017588-59696-4.png

上述输入为5x5x2,使用卷积核3x3,输出3x3x3,填充方式为VALID,计算如果填充方式改为SAME则输出为5x5x3。可以看出填充方式对输出结果的影响。

二:小卷积核VS大卷积核

在AlexNet中有有11x11的卷积核与5x5的卷积核,但是在VGG网络中因为层数增加,卷积核都变成3x3与1x1的大小啦,这样的好处是可以减少训练时候的计算量,有利于降低总的参数数目。关于如何把大卷积核替换为小卷积核,本质上有两种方法。

1. 将二维卷积差分为两个连续一维卷积

二维卷积都可以拆分为两个一维的卷积,这个是有数学依据的,所以11x11的卷积可以转换为1x11与11x1两个连续的卷积核计算,总的运算次数:

11x11 = 121次

1x11+ 11x1 = 22次

2.将大二维卷积用多个连续小二维卷积替代
可见把大的二维卷积核在计算环节改成两个连续的小卷积核可以极大降低计算次数、减少计算复杂度。同样大的二维卷积核还可以通过几个小的二维卷积核替代得到。比如:5x5的卷积,我们可以通过两个连续的3x3的卷积替代,比较计算次数

5x5= 25次

3x3+ 3x3=18次

三:池化层

在CNN网络中卷积池之后会跟上一个池化层,池化层的作用是提取局部均值与最大值,根据计算出来的值不一样就分为均值池化层与最大值池化层,一般常见的多为最大值池化层。池化的时候同样需要提供filter的大小、步长、下面就是3x3步长为1的filter在5x5的输入图像上均值池化计算过程与输出结果

100017588-59697-5.png

改用最大值做池化的过程与结果如下:

100017588-59698-6.png

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 卷积
    +关注

    关注

    0

    文章

    95

    浏览量

    18409
  • cnn
    cnn
    +关注

    关注

    3

    文章

    327

    浏览量

    21298
  • vgg
    vgg
    +关注

    关注

    1

    文章

    11

    浏览量

    5145
  • 池化
    +关注

    关注

    0

    文章

    4

    浏览量

    1089
收藏 人收藏

    评论

    相关推荐

    卷积神经网络通俗理解

    卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Network
    的头像 发表于 11-26 16:26 568次阅读

    什么是卷积神经网络?如何MATLAB实现CNN

    卷积神经网络(CNN 或 ConvNet)是一种直接从数据中学习的深度学习网络架构。 CNN 特别适合在图像中寻找模式以识别对象、类和类别。它们也能很好地对音频、时间序列和信号数据进行分类。
    发表于 10-12 12:41 593次阅读
    什么是<b class='flag-5'>卷积</b>神经网络?如何MATLAB实现<b class='flag-5'>CNN</b>?

    cnn卷积神经网络简介 cnn卷积神经网络代码

    cnn卷积神经网络简介 cnn卷积神经网络代码 卷积神经网络(Convolutional Neural Network,简称
    的头像 发表于 08-21 17:16 2028次阅读

    cnn卷积神经网络matlab代码

    cnn卷积神经网络matlab代码  卷积神经网络(Convolutional Neural Network, CNN)是深度学习中一种常用的神经网络结构,它是通过
    的头像 发表于 08-21 17:15 866次阅读

    cnn卷积神经网络算法 cnn卷积神经网络模型

    cnn卷积神经网络算法 cnn卷积神经网络模型 卷积神经网络(CNN)是一种特殊的神经网络,具有
    的头像 发表于 08-21 17:15 1176次阅读

    cnn卷积神经网络原理 cnn卷积神经网络的特点是什么

    cnn卷积神经网络原理 cnn卷积神经网络的特点是什么  卷积神经网络(Convolutional Neural Network,
    的头像 发表于 08-21 17:15 1144次阅读

    cnn卷积神经网络模型 卷积神经网络预测模型 生成卷积神经网络模型

    cnn卷积神经网络模型 卷积神经网络预测模型 生成卷积神经网络模型  卷积神经网络(Convolutional Neural Network
    的头像 发表于 08-21 17:11 807次阅读

    卷积神经网络算法三大类

    卷积神经网络算法三大类 卷积神经网络(Convolutional Neural Network,简称CNN)是一种常用的人工神经网络,它的主要应用领域是图像识别和计算机视觉方面。
    的头像 发表于 08-21 16:50 848次阅读

    卷积神经网络概述 卷积神经网络的特点 cnn卷积神经网络的优点

    卷积神经网络概述 卷积神经网络的特点 cnn卷积神经网络的优点  卷积神经网络(Convolutional neural network,
    的头像 发表于 08-21 16:41 1938次阅读

    python卷积神经网络cnn的训练算法

    python卷积神经网络cnn的训练算法  卷积神经网络(Convolutional Neural Network,CNN)一直是深度学习领域重要的应用之一,被广泛应用于图像、视频、语
    的头像 发表于 08-21 16:41 1014次阅读

    一文详解CNN

    连接卷积、激活等。 多层感知器包含全
    发表于 08-18 06:56

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法

    一。其主要应用领域在计算机视觉和自然语言处理中,最初是由Yann LeCun等人在20世纪80年代末和90年代初提出的。随着近年来计算机硬件性能的提升和深度学习技术的发展,CNN在很多领域取得了重大的进展和应用。 一、
    的头像 发表于 08-17 16:30 917次阅读

    使用NMSIS-NN库时,出现section `.bss\' will not fit in region `ram\'错误怎么解决?

    调用NMSIS-NN库函数,测试图一CNN模型。前两卷积函数可以正常编译,加入第三的时候开始报错如图二。这个错误我搜索发现需要修改图三这个文件,这个文件在哪里可以找到 图一:
    发表于 08-16 07:30

    026. 20 6 原理 #硬声创作季

    计算卷积网络
    充八万
    发布于 :2023年07月06日 23:47:08

    基于 FPGA 的目标检测网络加速电路设计

    压缩,之后将图片和参 数权重一起传输到 DRAM中,PL端再从DRAM中读取数据并归一,经过卷积将输 出特征图传回到DRAM中,再进行下一
    发表于 06-20 19:45