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

    浏览量

    19032
  • cnn
    cnn
    +关注

    关注

    3

    文章

    356

    浏览量

    23529
  • vgg
    vgg
    +关注

    关注

    1

    文章

    11

    浏览量

    5473
  • 池化
    +关注

    关注

    0

    文章

    4

    浏览量

    1259
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA实现CNN卷积的高效窗口生成模块设计与验证

    卷积神经网络(CNN)可以分为卷积、激活
    的头像 发表于 04-15 10:35 140次阅读
    FPGA实现<b class='flag-5'>CNN</b><b class='flag-5'>卷积</b><b class='flag-5'>层</b>的高效窗口生成模块设计与验证

    浅谈铝制程芯片核心分析方法

    在半导体芯片失效分析(FA)领域,铝制程芯片的分析是解锁芯片内部结构、定位失效根源的核心技术,更是集成电路、汽车电子、工业控制等领域从业者的必备技能。目前仍有大量成熟制程的铝制程芯片在各行业服役
    的头像 发表于 03-03 09:27 651次阅读
    浅谈铝制程芯片<b class='flag-5'>去</b><b class='flag-5'>层</b>核心分析方法

    PCB阻焊与助焊的本质区别

    在Altium Designer(AD)中设计PCB时,我们经常在层叠管理器里看到 Solder Mask 和 Paste Mask 这两。它们到底是什么?为什么总是成对出现?简单来说,可以把它们理解为PCB在生产和组装过程中,为了完成不同任务而穿的 “两件不同的衣服”
    的头像 发表于 01-06 18:50 3128次阅读
    PCB阻焊<b class='flag-5'>层</b>与助焊<b class='flag-5'>层</b>的本质区别

    CNN卷积神经网络设计原理及在MCU200T上仿真测试

    CNN算法简介 我们硬件加速器的模型为Lenet-5的变型,网络粗略分共有7,细分共有13。包括卷积,最大
    发表于 10-29 07:49

    数据全复用高性能设计思路分享

    大家好,本团队此次分享的内容为可实现数据全复用高性能设计思路,核心部分主要由以下3个部分组成; 1.SRAM读取模块;——使用的存
    发表于 10-29 07:10

    NMSISI库的使用

    :   神经网络卷积函数   神经网络激活函数   全连接函数   神经网络函数   Softmax 函数   神经网络支持功能   该库具有用于操作不同权重和激活数据类型的
    发表于 10-29 07:07

    NMSIS神经网络库使用介绍

    :   神经网络卷积函数   神经网络激活函数   全连接函数   神经网络函数   Softmax 函数   神经网络支持功能   该库具有用于操作不同权重和激活数据类型的
    发表于 10-29 06:08

    构建CNN网络模型并优化的一般建议

    的尺寸不宜过大,3*3或者1*1等小尺寸的卷积核(滤波器)对于实现轻量级模型是十分必要的。 3)添加归一和验证检查点:归一可以调整
    发表于 10-28 08:02

    卷积运算分析

    的数据,故设计了ConvUnit模块实现单个感受域规模的卷积运算. 卷积运算:不同于数学当中提及到的卷积概念,CNN神经网络中的卷积严格意义
    发表于 10-28 07:31

    NMSIS库的使用

    nmsis core、nmsis dsp和nmsis nn三个组件,分别提供了对处理器核心和外设、数字信号处理库和神经网络内核的支持。 卷积、激活、卷积神经网络中常用的三种操作,
    发表于 10-24 09:58

    在Ubuntu20.04系统中训练神经网络模型的一些经验

    , batch_size=512, epochs=20)总结 这个核心算法中的卷积神经网络结构和训练过程,是用来对MNIST手写数字图像进行分类的。模型将图像作为输入,通过卷积
    发表于 10-22 07:03

    CICC2033神经网络部署相关操作

    读取。接下来需要使用扩展指令,完成神经网络的部署,此处仅对第一卷积+的部署进行说明,其余与之类似。 1.使用 Custom_Dtr
    发表于 10-20 08:00

    和七负载均衡的核心区别

    在现代分布式系统和云计算架构中,负载均衡(Load Balancing, LB)是确保高可用性、可扩展性和性能优化的关键技术。负载均衡器根据不同的OSI模型层级工作,主要分为四(L4)和七(L7)两种类型。它们各自适用于不同
    的头像 发表于 05-29 17:42 1542次阅读

    感知、传输、应用一体:工控一体机厂家聚徽详解集成技术方案

    过程的全面智能与高效。本文将深入探讨工控一体机中感知、传输、应用一体的集成技术方案,
    的头像 发表于 05-27 14:35 1434次阅读

    在友晶LabCloud平台上使用PipeCNN实现ImageNet图像分类

    利用深度卷积神经网络(CNN)进行图像分类是通过使用多个卷积来从输入数据中提取特征,最后通过分类做决策来识别出目标物体。
    的头像 发表于 04-23 09:42 1216次阅读
    在友晶LabCloud平台上使用PipeCNN实现ImageNet图像分类