卷积计算神经网络搭建过程包含_卷积神经网络中的计算

本文详细介绍了卷积神经网络中的计算,涵盖卷积基本概念、卷积参数量计算、FLOPs计算以及感受野的计算。通过实例解析了卷积操作对输入尺寸的影响,并探讨了不同维度卷积的应用。
摘要由CSDN通过智能技术生成

一、综述

本文将会介绍卷积相关的一些计算,包括:

  1. 卷积的基本介绍
  2. 卷积操作后张量的大小计算
  3. 卷积参数量的计算
  4. 卷积Flops的计算
  5. 感受野的计算

1. 卷积

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

19658c075428d1fe2474414445eeb4a3.gif
图1-二维卷积过程示例

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

3a91db26eeb7ab4eb8d4191f00967a51.gif
图2-卷积特征提取示例


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

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

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

equation?tex=H_n ,
equation?tex=H_%7Bn-1%7D 表示输入特征图大小:

equation?tex=H_n%3D%5Cfrac%7BH_%7Bn-1%7D-k%2B2p%7D%7Bs%7D%2B1

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

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


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

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

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

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

4cbbf5ec213a384c0043e2ce72e08810.png
图6-卷积类型和输入大小的对应关系

1bf08b50aee6182a974d851378f5320e.png
图7-卷积类型和卷积核大小的对应关系

7cc2df8c82ea55db8f3b9c4bd56c72b5.png
图8-卷积类型和输出大小的对应关系

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

3. 卷积参数量的计算

对于一层卷积而言,其中的每个卷积核的参数量即为同卷积核的大小,那么对于有

equation?tex=c_%7Bout%7D 个卷积核的卷积层而言,并加上了偏置项。其参数量
equation?tex=P 为:

equation?tex=P%3D%28k%2Ak%2Ac_%7Bin%7D%2B1%29%2Ac_%7Bout%7D

4. 卷积Flops的计算

衡量卷积计算量的指标是FLOPs(Floating Point Operations,浮点运算次数)。一次乘法和一次加法表示一个浮点运算次数。那么每一个卷积每一次的滑动卷积的计算量就是

equation?tex=k%2Ak%2Ac_%7Bin%7D,那么在
equation?tex=H%2AW 的图上进行卷积就可以计算得到如下计算公式,也就是参数量乘以卷积图的尺寸:

equation?tex=FLOPs%3DP%2AH%2AW%3D%28k%2Ak%2Ac_%7Bin%7D%2B1%29%2Ac_%7Bout%7D%2AH%2AW

5. 感受野的计算

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

equation?tex=i 对应到输入的感受野
equation?tex=RF_i 的计算公式如下:

equation?tex=RF_i+%3D+%28RF_%7Bi-1%7D-1%29%2As_i+%2B+k_i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值