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
CNN感受野计算的更多相关文章
- 转载 - CNN感受野(receptive-fields)RF
本文翻译自A guide to receptive field arithmetic for Convolutional Neural Networks(可能需要FQ才能访问),方便自己学习和参考.若 ...
- 对CNN感受野一些理解
对CNN感受野一些理解 感受野(receptive field)被称作是CNN中最重要的概念之一.为什么要研究感受野呐?主要是因为在学习SSD,Faster RCNN框架时,其中prior box和A ...
- CNN 参数计算
CNN 时间计算复杂度与空间复杂度 即,连续个数与参数个数, 每一个连接都意味着一个计算, 每一个参数都意味一个存储单元. 只计算主要部分. CNN局部连接与权值共享 如图所示: 全连接:如左图所示, ...
- 经典CNN模型计算量与内存需求分析
表1 CNN经典模型的内存,计算量和参数数量对比 AlexNet VGG16 Inception-v3 模型内存(MB) >200 >500 90-100 参数(百万) 60 138 23 ...
- CNN中计算量FLOPs的计算
1.FLOPs的概念:全称是floating point operations per second,意指每秒浮点运算次数,即用来衡量硬件的计算性能:在CNN中用来指浮点运算次数: 2.计算过程: 如 ...
- CNN卷积核计算
作者:十岁的小男孩 目录 单层卷积核计算 三维卷积核计算 Padding=Valid&&Same 总结
- 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, ...
- CNN网络结点计算总结(1998)
图 来源:Gradient-Based Learning Applied to Document Recognition 参阅CSDN:https://blog.csdn.net/dcxhun3/ar ...
- CNN中感受野大小的计算
1 感受野的概念 从直观上讲,感受野就是视觉感受区域的大小.在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小. 2 感受野 ...
随机推荐
- Sunday算法--C#版
public static int Sunday(string text, string pattern) { int i, j, m, k; i = j = 0; int tl, pl; int p ...
- cassandra框架模型之二——存储机制 CommitLog MemTable SSTable
四.副本存储 Cassandra不像HBase是基于HDFS的分布式存储,它的数据是存在每个节点的本地文件系统中. Cassandra有三种副本配置策略: 1) SimpleStrategy (Rac ...
- 原生JS日历 + JS格式化时间格式
公司项目中用到,以前没做过,废了好几个小时 终于做好了 先来效果图(暂时没写样式 凑合着看吧) 点击左右按钮都能改变月份 下方表格中的数据也会跟着变化 贴上代码 : html部分: <div s ...
- js、jq、ajax之间的关系
一句话:js是一种客户端脚本语言,jq是在js基础上封装起来的一个开发工具,ajax是基于js的一种技术(异步刷新). javascript是一种在客户端执行的脚本语言,用来给网页添加动态功能,使网页 ...
- MS SQL GUID
(转自:http://blog.csdn.net/maonongwu/article/details/6327093) GUID介绍 GUID(Global unique identifier)全局唯 ...
- 伪元素:placeholder-shown&&:focus-within
:placeholder-shown 另外,划重点,这个伪类是仍处于实验室的方案.也就是未纳入标准,当然我们的目的是探寻有意思的 CSS . 当 input 类型标签使用了 placeholder 属 ...
- wlan经常掉线怎么办?
有没有这样的情款,好好的网络总是突然断掉然,之后就需要重新连接,连接以后没多久有需要重新连接.本次经验就来和大家一起分享一下几种情况的解决方法,非常的简单实用. 工具/原料 电脑 电源设置问题 1.本 ...
- 微软SaaS多租户解决方案
微软SaaS多租户解决方案 docs.microsoft.com/en-us/azure/sql-database/saas-tenancy-app-design-patterns https://d ...
- matlab中freqz的用法以及多项式的展开
对于一个变量a,matlab中定义需要这样 syms a: 定义之后就可以写由变量组成的式子,比如 c=(1+a^-1)^5; 可以用expand(c) 就能把c展开成多项式,每一项的系数就可以看到. ...
- verilog数组定义及其初始化
这里的内存模型指的是内存的行为模型.Verilog中提供了两维数组来帮助我们建立内存的行为模型.具体来说,就是可以将内存宣称为一个reg类型的数组,这个数组中的任何一个单元都可以通过一个下标去访问.这 ...