无痛理解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

CNN感受野计算的更多相关文章

  1. 转载 - CNN感受野(receptive-fields)RF

    本文翻译自A guide to receptive field arithmetic for Convolutional Neural Networks(可能需要FQ才能访问),方便自己学习和参考.若 ...

  2. 对CNN感受野一些理解

    对CNN感受野一些理解 感受野(receptive field)被称作是CNN中最重要的概念之一.为什么要研究感受野呐?主要是因为在学习SSD,Faster RCNN框架时,其中prior box和A ...

  3. CNN 参数计算

    CNN 时间计算复杂度与空间复杂度 即,连续个数与参数个数, 每一个连接都意味着一个计算, 每一个参数都意味一个存储单元. 只计算主要部分. CNN局部连接与权值共享 如图所示: 全连接:如左图所示, ...

  4. 经典CNN模型计算量与内存需求分析

    表1 CNN经典模型的内存,计算量和参数数量对比 AlexNet VGG16 Inception-v3 模型内存(MB) >200 >500 90-100 参数(百万) 60 138 23 ...

  5. CNN中计算量FLOPs的计算

    1.FLOPs的概念:全称是floating point operations per second,意指每秒浮点运算次数,即用来衡量硬件的计算性能:在CNN中用来指浮点运算次数: 2.计算过程: 如 ...

  6. CNN卷积核计算

    作者:十岁的小男孩 目录 单层卷积核计算 三维卷积核计算 Padding=Valid&&Same 总结

  7. vgg16 感受野计算

    code: vgg_16 = [ [3, 1], [3, 1], [2, 2], [3, 1], [3, 1], [2, 2], [3, 1], [3, 1], [3, 1], [2, 2], [3, ...

  8. CNN网络结点计算总结(1998)

    图 来源:Gradient-Based Learning Applied to Document Recognition 参阅CSDN:https://blog.csdn.net/dcxhun3/ar ...

  9. CNN中感受野大小的计算

    1 感受野的概念 从直观上讲,感受野就是视觉感受区域的大小.在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小. 2 感受野 ...

随机推荐

  1. Java 控制台应用程序部署 Linux

    http://blog.csdn.net/brushli/article/details/12106339 注意:Windows 下编译的sh脚本,在linux上会存在编码问题,需在 linux 下编 ...

  2. C++程序设计之提高效率

    设计C++程序时,总结起来可以从如下几点提高效率: 1.并发 2.异步 3.缓存

  3. 异步请求(ajax,http) 之 逐渐完善的大全

    异步请求在我们的开发之中是经常需要学习和理解的内容,我们将会在这一篇文章中依据不同的语言和环境内容进行归类讲解. JS: ajax是我们最为常用的页面异步请求,在只需要修改部分页面内容而不需要更换全部 ...

  4. jQuery——操作复选框(checkbox) attr checked不起作用

    这天用到jQuery功能,想实现一个简单的复选框动态全选或全不选,结果测试发现 attr(‘checked’,'checked’);与attr(‘checked’,true); 都不好使,要么第一次成 ...

  5. LeetCode OJ:Remove Nth Node From End of List(倒序移除List中的元素)

    Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...

  6. 条款10:让operator=返回一个reference to *this

    例如对象x,y,z.要实现连锁赋值(假设operator=已经重载过了):x = y = z,那么operator=则必须返回一个*this. 注意这个条款不仅仅适合于operator=,对于oper ...

  7. vsftpd的530 Login incorrect错误解决方法 vsftpd登录错误

    530 Login incorrect只有用匿名anonymous才可登录,其余所有用户都报530 Login incorrect错 复制代码 代码如下: local_enable=YESwrite_ ...

  8. Qt中QT_BEGIN_NAMESPACE和QT_END_NAMESPACE的作用

    在Qt中,我们经常会看到 QT_BEGIN_NAMESPACE class QAction; class QMenu; class QPlainTextEdit; QT_END_NAMESPACE 这 ...

  9. svg实现 圆形 点击扩大、消失

    效果: 代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="U ...

  10. 让ListView中的控件失去焦点:android:descendantFocusability="blocksDescendants"

    值得注意的是,ListView中的控件不能设置clickable="true",否则会无视父控件的blockDescendants. 可参考: https://segmentfau ...