zoukankan      html  css  js  c++  java
  • CNN感受野计算

    无痛理解CNN中的感受野receptive field

    CNN中感受野的计算

    从直观上讲,感受野就是视觉感受区域的大小。在卷积神经网络中,感受野的定义是决定某一层输出结果中一个元素所对应的输入层的区域大小

    感受野计算时有下面的几个情况需要说明:

    a)第一层卷积层的输出特征图像素的感受野的大小等于滤波器的大小;

    b)深层卷积层的感受野大小和它之前所有层的滤波器大小和步长有关系;

    c)计算感受野大小时,忽略了图像边缘的影响,即不考虑padding的大小

    至于如何计算感受野,我的建议是top to down的方式,即从网络的最后向前推

    感受野的大小是由kernel size(filter)和stride size(步长)一起决定的,公式:

    rfsize = f(out, stride, ksize) = (out - 1) * stride + ksize,其中out是指上一层感受野的大小,stride是当前层stride

    最后一层不带入公式,它的ksize是前一层的out

    理解:

    Feature Map的尺寸=(input_size + 2 * padding_size − ksize)/stride+1

    根据定义 感受野是决定某一层输出结果中一个元素所对应的输入层的区域大小

    这里指的是要求解的那层的一个元素也就是最初输入的out=1:

    rfsize = f(out, stride, ksize) = (out - 1) * stride + ksize

    感受野近似于用feature map反推input_size ,只是不考虑padding

    例1:

    以VGG16为例:

    vgg16构造模型图:http://ethereon.github.io/netscope/#/gist/dc5003de6943ea5a6b8b

    一个元素,所以out=1

    pool2: rfsize= (1-1)*2+2=2

    conv1_2: rfsize=(2-1)*1+3=4

    conv1_1: rfsize= (4-1)*1+3=6

     例2:

    r指感受野 s:stride,p:padding,k:filter

    layer1对layer0:

    out=1

    (1-1)*2+3=3

    layer2对layer0:

    out=1

    (1-1)*2+3=3

    (3-1)*2+3=7

  • 相关阅读:
    Codeforces D
    Codeforces C
    Minimal Ratio Tree HDU
    Tian Ji -- The Horse Racing HDU
    Monkey Banana Problem LightOJ
    Rooks LightOJ
    洛谷 P2742 [USACO5.1]圈奶牛Fencing the Cows || 凸包模板
    洛谷 P3382 【模板】三分法
    洛谷 P1438 无聊的数列
    洛谷 P1082 同余方程
  • 原文地址:https://www.cnblogs.com/34fj/p/9139756.html
Copyright © 2011-2022 走看看