精华内容
下载资源
问答
  • 特征图尺寸:o=[(i-k+2p)/s]+1 其中o为output尺寸,k为kernel_size,i为input尺寸,s为步长,p为padding 感受野: a)第一层卷积层的输出特征图像素的感受野的大小等于滤波器的大小; b)深层卷积层的感受野大小和...

    1.普通卷积

    特征图尺寸:o=[(i-k+2p)/s]+1
    其中o为output尺寸,k为kernel_size,i为input尺寸,s为步长,p为padding

    感受野:
    a)第一层卷积层的输出特征图像素的感受野的大小等于滤波器的大小;
    b)深层卷积层的感受野大小和它之前所有层的滤波器大小和步长有关系;
    c)计算感受野大小时,忽略了图像边缘的影响,即不考虑padding的大小。
    在这里插入图片描述

    2.空洞卷积

    特征图尺寸:o=[(i-k+2p-(k-1)*(r-1))/s]+1
    其中o为output尺寸,k为kernel_size,i为input尺寸,s为步长,p为padding,r为膨胀率,r=1为普通卷积。

    空洞卷积卷积核尺寸:f=(k-1)*(r-1)+k
    其中k为卷积核尺寸,r为膨胀率

    展开全文
  • CNN卷积输出尺寸计算

    千次阅读 2019-07-06 09:49:50
    CNN在执行卷积时,因为卷积核的大小通常大于1,并且滑动步长也不一定为1,所以会导致卷积操作输出的特征图大小比输入特征图要小,如果想控制输出特征图的大小,在不改变卷积核尺寸及滑动步长的情况下,就需要在特征...

    摘要:

    CNN在执行卷积时,因为卷积核的大小通常大于1,并且滑动步长也不一定为1,所以会导致卷积操作输出的特征图大小比输入特征图要小,如果想控制输出特征图的大小,在不改变卷积核尺寸及滑动步长的情况下,就需要在特征图的边界进行填充(padding),在TensorFlow框架中,可以使用SAME(自动填充,使输出特征图尺寸和输入尺寸一样)和VALID(不做填充,会导致输出尺寸比输入要小)来处理padding问题,在PyTorch中,得自己设置填充数量。顺便说一下,其实是否填充一般情况下对性能影响不大,TensorFlow中padding经常设置为SAME,这样很方便计算卷积每层输出的尺寸。

    输出尺寸计算:

    假设输入特征图尺寸为(H^i,W^i),卷积和及滑动步长为K_h \times K_w,(S_h,S_w),填充的像素为P,输出特征图尺寸为(H^o,W^o)

    如果不填充,即P=0,H^o=floor(\frac{(H-K_h)}{S_h})+1,W^o=floor(\frac{(W-K_w)}{S_w})+1,floor表示向下取整。

    如果填充,即P\neq 0,H^o=floor(\frac{(H-K_h+P)}{S_h})+1W^o=floor(\frac{(W-K_w+P)}{S_w})+1,此处的padding只填充宽或高的一侧,如果是两侧,乘以2即可。

     

     

     

     

    展开全文
  • CNN卷积神经网络中的stride、padding、channel以及特征图尺寸计算1. stride步幅2. padding填充3. channel通道4. 计算及例子总结: 1. stride步幅 stride:卷积时的采样间隔 设置步幅的目的是希望减小输入参数的...

    CNN卷积神经网络中的stride、padding、channel以及特征图尺寸的计算


    1. stride步幅

    stride:卷积时的采样间隔

    设置步幅的目的是希望减小输入参数的数目,减少计算量。stride参数的值就是缩小的倍数,比如步幅为2,就对输入的特征图做2倍下采样,注意步幅并不代表输出是输入的 1 s t r i d e \frac{1}{stride} stride1

    2. padding填充

    padding:在输入特征图的每一边添加一定数目的行列,使得输出和输入的特征图的尺寸相同。

    为什么要设置padding:

    1. 如果没有padding,每次进行卷积后,原始图像的尺寸就会越来越小,所以没有办法设计层数足够多的深度神经网络。
    2. 希望每个输入特征图的每一块都能作为卷积窗口的中心,防止丢失图像边缘信息。

    在tensorflow中:
    padding = 'same'表示进行填充,填充的值由算法内部根据卷积核大小计算,目的是让输出尺寸和输入相等。
    padding = 'valid'表示不进行填充,即是 padding=0,只使用有效的窗口位置,这是默认的选项。

    p a d d i n g = s i z e _ f i l t e r − 1 2 padding = \frac{size\_filter - 1}{2} padding=2size_filter1

    这就是为什么卷积核尺寸通常选择奇数的原因

    还要注意padding='same'目的是让输出尺寸和输入尺寸相等,但前提是步幅=1,步幅若不是1,那么输出尺寸跟输入尺寸肯定是不一样

    3. channel通道

    在只有一个通道的情况下,“卷积核”就相当于“filter”,这两个概念是可以互换的。但在一般情况下,它们是两个完全不同的概念。每个“filter”实际上恰好是“卷积核”的一个集合,在当前层,每个通道都对应一个卷积核,且这个卷积核是独一无二的。

    卷积过程中,输入层有多少个通道,filter就有多少个通道。

    即:某一层filter的通道数 = 上一层特征图的通道数。

    一般的图像都是三通道的,所以卷积核也应该为三个通道。比如对于32x32x3的图像,使用一个5x5x3的卷积核,最终会得到一个28x28x1的特征图。

    但是filter的数量任意的,filter的数量决定了卷积后特征图的数量。

    即:某一层输出特征图的通道数 = 当前层filter的个数

    4. 计算及例子

    例:一个尺寸 a*a 的特征图,经过 b*b 的卷积层,步幅(stride)=c,填充(padding)=d,请计算出输出的特征图尺寸?
    

    输出特征图尺寸 = a − b + 2 d c + 1 =\frac{a - b + 2d}{c} + 1 =cab+2d+1

    只要记住这个公式,就可以计算所有输出特征图的尺寸了。

    例:输入4*4,卷积核3*3,stride = 1,padding = 0
                  
                  输出尺寸 = (4-3+0)/1 + 1 = 2
    

    在这里插入图片描述

    例:输入5*5,卷积核3*3,stride = 1,padding = 1
                  
                  输出尺寸 = (5-3+2)/1 + 1 = 5
    

    在这里插入图片描述

    例:输入5*5,卷积核3*3,stride = 2,padding = 0
                  
                  输出尺寸 = (5-3+0)/2 + 1 = 2
    

    在这里插入图片描述

    例:输入6*6,卷积核3*3,stride = 2,padding = 1
                  
                  输出尺寸 = int(6-3+2)/2 + 1 = 3
    注意:这里的padding有一列是没有参与卷积的,因为stride为2没有办法采样到这一列
    

    在这里插入图片描述

    总结:
    卷积过程中,有时需要通过padding来避免信息损失,有时也要通过设置stride来压缩一部分信息,或者使输出的尺寸小于输入的尺寸。

    本文参考以下文章整理而来:
    CNN中stride(步幅)和padding(填充)的详细理解
    卷积神经网络中的stride、padding和channel概念
    CNN基础知识——卷积(Convolution)、填充(Padding)、步长(Stride)

    展开全文
  • 《卷积的感受野计算及特征图尺寸计算》   从FPN开始,目标检测的精度大幅提升,各种特征融合方式层出不穷,多尺度的特征一大优势是解决了小目标的检测问题。核心思想是利用浅层特征预测小目标,深层特征预测大...

    《卷积的感受野计算及特征图尺寸计算》

      从FPN开始,目标检测的精度大幅提升,各种特征融合方式层出不穷,多尺度的特征一大优势是解决了小目标的检测问题。核心思想是利用浅层特征预测小目标,深层特征预测大目标,那为什么浅层特征不能预测大目标呢?这就涉及到了感受野的概念,感受野太小的话是无法捕捉大目标的全部特征的,这样就会导致分类不准,进而导致模型不work,所以准确的对模型的感受野有把控是很必要的。本文会明确的告诉你如何计算卷积的不同层的感受野,包括膨胀卷积,各种步长的卷积。个人认为像ResNet、DenseNet这种我们在计算感受野的时候不不用在意short cut的感受野,因为计算的是最大感受野。

    Key Words:Rreceptive field、FeatureMap shape


    Beijing, 2020

    作者:RaySue

    Agile Pioneer  


    卷积的感受野计算

       先给出计算感受野的公式,公式中可以看出感受野和前一层感受野、卷积核大小、及此层前的卷积步长有关系,和Padding一点关系没有,我看到网上经常有些公式会带Padding,不理解

    R F n = R F n − 1 + ( f K − 1 ) ∏ i = 0 n − 1 S i RF_n = RF_{n-1} + (f_K - 1)\prod_{i=0}^{n-1}S_i RFn=RFn1+(fK1)i=0n1Si

    • R F n RF_n RFn 表示第 n 层的感受野,第 0 层的感受野就是 1
    • f K f_K fK 表示卷积核的大小
    • S i S_i Si 表示第 i 层的步长

    带孔卷积

       在实际使用卷积的时候为了增大感受野,经常使用带孔卷积,比如典型的 ASPP就通过带孔卷积来增大感受野代替通过池化来增加感受野的方式,从而有效的避免的信息的损失,而且巧妙的利用带孔卷积获取多尺度的信息。

       上图是论文中的图,其中F0->F1->F2->F3表示卷积层,具体的感受野计算就是根据如下公式,在没有分辨率和覆盖范围损失的情况下指数级增加感受野。

    f K ′ = ( f K − 1 ) ∗ D + 1 f^{'}_K = (f_K - 1) * D + 1 fK=(fK1)D+1

    • D 表示膨胀系数,默认为1,即不带空洞,D等于2的时候卷积核间出现一个空洞

    卷积感受野计算实例

    R F n = R F n − 1 + ( ( ( f K − 1 ) ∗ D + 1 ) − 1 ) ∏ i = 0 n − 1 S i RF_n = RF_{n-1} + (((f_K - 1) * D + 1) - 1)\prod_{i=0}^{n-1}S_i RFn=RFn1+(((fK1)D+1)1)i=0n1Si

    1. conv 3x3 stride=2 Dilation=2 Padding=2
    2. conv 5x5 stride=2 Dilation=2 Padding=0
    3. conv 3x3 stride=1 Dilation=1 Padding=1
    4. conv 3x3 stride=1 Dilation=3 Padding=1
    5. conv 7x7 stride=2 Dialtion=2 Padding=1

    计算过程:

    • 第 0 层的感受野是 1
    • 第一层的感受野是 1 + ((3 - 1) * 2 + 1) - 1 = 5
    • 第二层的感受野是 5 + (((5 - 1) * 2 + 1) - 1) * 2 = 21
    • 第三层的感受野是 21 + (3 - 1) * 2 * 2 = 29
    • 第四层的感受野是 29 + (((3 - 1) * 3 + 1) - 1) * 2 * 2 = 53
    • 第五层的感受野是 53 + (((7 - 1) * 2 + 1) - 1) * 2 * 2 = 101

    解析:

    1. 如果Dilation = 1,那么 f K f_K fK 是多少就是多少
    2. 如果Dilation > 1,那么就用 f K ′ = ( f K − 1 ) ∗ D + 1 f^{'}_K = (f_K - 1) * D + 1 fK=(fK1)D+1 替换之前的 f K f_K fK 即可
    3. 对前 n − 1 n-1 n1 层的步长累乘

    如果怀疑我算的不对的话,自行利用卷积感受野计算器验证一下即可,如果哪里写的不清楚请留言,如果有帮助请三连。


    卷积层特征图尺寸计算

       不同参数的卷积得到的特征图大小有时候也是很有用的,以方便你做特征融合或计算模型的FLOPs工作等。

    n o u t = n i n + 2 ∗ P − K S + 1 n_{out} = \frac{n_{in} + 2 * P - K}{S} + 1 nout=Snin+2PK+1

    • n i n n_{in} nin 输入特征图的维度
    • n o u t n_{out} nout 输出特征图的维度
    • P P P Padding 的数量
    • K K K 卷积核的尺寸
    • S S S 卷积的步长

    参考

    http://shawnleezx.github.io/blog/2017/02/11/calculating-receptive-field-of-cnn/
    https://www.cnblogs.com/makefile/p/receptive-field.html

    展开全文
  • 卷积或池化后的特征图尺寸计算

    千次阅读 2019-05-08 11:14:43
    设输入图像尺寸为W,卷积核尺寸为F,步幅为S,Padding使用P,则经过卷积层或池化层之后的图像尺寸为(W-F+2P)/S+1。 1、如果 Padding=‘SAME’,with zero paddding,则输出尺寸为: W / S(结果向上取整); 验证...
  • 卷积层输入特征图尺寸为:Hinput×Winput×CinputHinput×Winput×CinputH_{input} \times W_{input} \times C_{input} HinputHinputH_{input}表示输入特征图的高 WinputWinputW_{input}表示输入特征图的宽 ...
  • 分享一些公式计算张量的尺寸,以及CNN中参数的计算。 以Alexnet网络为例,以下是该网络的参数结构。 AlexNet网络的层结构如下: 1.Input: 图像的尺寸是2272273. 2.Conv-1: 第1层卷积层的核大小11*11,96个核。...
  • 在阅读论文时,我们会遇到参数量,FLOPS,Multi-add, CNN参数,CNN计算量等概念,通过阅读整理,这篇博客希望以最简洁的解释帮助大家理解这些基本概念。...上描述了一个 5*5*3 的输入特征图边界采用1个...
  • 关于CNN特征图大小的计算公式

    千次阅读 2019-04-01 08:54:00
    先给出的卷积层输出大小的的计算公式(这里假设输入矩阵...即输入n*n的矩阵,用k*k的卷积核对输入进行卷积,得到大小为n’*n’的特征图。 一直疑惑要怎么理解这个式子,虽然验证过多个卷积计算,证明feature map的...
  • 他们厌倦了盲目尝试和错误,可以从CNN主干中选择哪些特征图以改善其模型的性能,而宁愿从早期开始设计过程的步骤,以使特征图的空间比例轮廓与训练数据集中的对象尺寸相匹配。抽象在这篇文章中,我们使用派生的数学...
  • 卷积神经网络的概念示范:输入图像通过和三个可训练的滤波器和可加偏置进行卷积,滤波过程如一,卷积后在C1层产生三个特征映射,然后特征映射中每组的四个像素再进行求和,加权值,加偏置,通过一个Sigmoid...
  • CNN输入不同尺寸图片的处理

    千次阅读 2020-06-28 15:57:59
    由于CCN中全连接层对于输入的图片尺寸有限制,因此对于不同尺寸图片要做相关处理。 常见的操作有resize or crop or padding 虽然简单粗暴,但是有效。但是这个也要因任务而异,比如普通的图像分类问题,resize...
  • 五种CNN模型的尺寸计算量和参数数量对比详解一、SqueezeNet1.1 设计思想1.2 网络架构1.3 实验结果1.4 速度考量二、Deep Compression2.1 算法流程2.2 模型存储2.3 实验结果2.4 速度考量三、XNorNet3.1 BWN3.2 XNOR-...
  • CNN模型的尺寸计算量和参数数量对比 自从AlexNet一举夺得ILSVRC 2012 ImageNet图像分类竞赛的冠军后,卷积神经网络(CNN)的热潮便席卷了整个计算机视觉领域。...1 几种经典模型的尺寸计算量和参数数量.
  • <!-- flowchart 箭头图标 勿删 --> ;">,0 0,2.5 5,5z" id="raphael-marker-...卷积层输入特征图(input feature map)的尺寸为: H i n p u t × W i n p u t × C i n p u t Hinput×Winput×Cinput
  • 感受野是检测和分割任务中比较重要的指标,它是一个逐层叠加的过程,计算到最后一层的卷积特征图输出上,它的计算公式是: RFi=RFi−1+(kernelsize−1)×stride,RF0=1RF_{i}=RF_{i-1}+(kernelsize-1)\tim...
  • 本文小白将和大家一起学习如何在不使用计算量很大的滑动窗口的情况下对任意尺寸的图像进行图像分类。通过修改,将ResNet-18CNN框架需要224×224尺寸的图像输入改为任意尺寸的图像输...
  • CNN 感受野计算公式

    千次阅读 2018-07-14 17:50:52
    感受野指的是一个特定的 CNN 特征特征图上的某个点)在输入空间所受影响的区域。一个感受野可以用中信位置和打表来表征。然而,对于一个 CNN 特征来说,感受野中的每一个像素值并不是同等重要。一个像素点越接近...
  • CNN-卷积层操作后矩阵尺寸大小计算

    千次阅读 2020-09-30 22:08:13
    如下所示,原图像是红框内4*4的矩阵,下面讲解下经卷积后的矩阵尺寸大小计算方法 按中的4步依次进行计算 输入图片大小W*W为4*4,故W=4 filter大小F*F为3*3,故F=3 这里我们设置步长为2 padding的像素数P=1,...
  • The first way is based on image/feature pyramids, e.g., in DPM[*] and CNN-based methods. The images are resized at multiple scales, and feature maps are computed for each scale(Figure
  • https://www.cnblogs.com/touch-skyer/p/9150039.html  
  • cnn、lstm参数计算

    千次阅读 2018-12-17 10:27:54
    一、cnn参数计算   假设输入7*7*3,卷积核3*3*2,stride=(1,1),输出是3*3*2 参数量计算:fileter_size✖️input_channel✖️output_channel 解释:参数量与输入尺寸无关,只是卷积核的参数,每一个卷积核首先...
  • 计算CNN的输出

    2020-11-17 18:05:51
    怎么根据cnn网络的参数和输入图片大小,计算一个cnn网络的输出呢,下面来说明一下 现在做如下假设 n:表示图像尺寸,比如图像尺寸为n*n*3 f:表示卷积核尺寸,比如卷积核尺寸为f*f,可以用filter表示卷积核 s:表示...
  • CNN中感受野的计算

    2019-03-05 16:18:28
    在学习物体检测相关的论文中,很多地方提到Anchor的设计,刚开始只是明白特征图到原的映射原理,但是并没有实际计算过。 这里给出关于CNN中感受野的计算过程。 是第k层感受野 是第k层卷积核尺寸ksize 是...
  • 卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习) 分享一些公式计算张量(图像)的尺寸,以及卷积神经网络(CNN)中层参数的计算。 以AlexNet网络为例,以下是该网络的参数结构。 AlexNet网络的层结构...
  • CNN 参数计算

    2018-06-28 10:32:00
    CNN 时间计算复杂度与空间复杂度 即,连续个数与参数个数, 每一个连接都意味着一个计算, 每一个参数都意味一个存储单元。 只计算主要部分。 CNN局部连接与权值共享 如所示: 全连接:如左图所示,全连接情况下...
  • CNN感受野计算

    2018-09-03 00:10:46
    在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。 2 感受野大小的计算  感受野计算时有下面的几个情况需要说明: (1)第一层卷积层的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,128
精华内容 10,451
关键字:

cnn特征图尺寸计算