2020-12-09 深度学习 卷积神经网络中感受野的详细介绍
卷积神经网络中感受野的详细介绍
1. 感受野的概念
在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。再通俗点的解释是,特征图上的一个点对应输入图上的区域,如图1所示。
图1:用图形理解感受野概念
2. 感受野的例子
(1)两层3*3的卷积核卷积操作之后的感受野是5*5,其中卷积核(filter)的步长(stride)为1、padding为0,如图2所示:
图2:两层3*3卷积核操作之后的感受野是5*5
(2)三层3*3卷积核操作之后的感受野是7*7,其中卷积核的步长为1,padding为0,如图3所示:
图3:三层3*3卷积核操作之后的感受野是7*7
3. 感受野的计算
感受野计算时有下面几个知识点需要知道:
- . 最后一层(卷积层或池化层)输出特征图感受野的大小等于卷积核的大小。
- . 第i层卷积层的感受野大小和第i层的卷积核大小和步长有关系,同时也与第(i+1)层感受野大小有关。
- . 计算感受野的大小时忽略了图像边缘的影响,即不考虑padding的大小。
关于感受野大小的计算方式是采用从最后一层往下计算的方法,即先计算最深层在前一层上的感受野,然后逐层传递到第一层,使用的公式可以表示如下:
其中,是第i层卷积层的感受野,是(i+1)层上的感受野,stride是卷积的步长,Ksize是本层卷积核的大小。
4. 计算VGG16网络每层的感受野
(1)引例。
VGG16网络有点复杂,我们先来计算一个简单的例子,先学会计算感受野,在来分析复杂的网络。
图4:简单的网络结构
我们从最后一层的池化层开始计算感受野:
pool3:RF=2(最后一层池化层输出特征图的感受野大小等于卷积核的大小)
conv4:RF=(2-1)*1+3=4。
conv3:RF=(4-1)*1+3=6。
pool2:RF=(6-1)*2+2=12。
conv2:RF=(12-1)*1+3=14。
pool1:RF=(14-1)*2+2=28。
conv1:RF=(28-1)*1+3=30。
因此,pool3输出的特征图在输入图片上的感受野为30*30。
(2)VGG16网络每层感受野计算
图5:VGG16网络结构
在VGG16网络中,我们从全连接层开始倒推,直到输入层,过程如下:
pool5:RF=2。(最后一层池化层输出特征图感受野的大小等于卷积核的大小)
conv5_3:RF=(2-1)* 2+2=4。
conv5_2:RF=(4-1)*1+3=6。
conv5_1:RF=(6-1)*1+3=8。
pool4:RF=(8-1)*2+2=16。
... ... ... ... ... ... ...
类推...
因此我们可以得出:pool5输出的特征图在输入图片上的感受野为212*212;conv5_3输出的特征图在输入图片上的感受野为196*196,其它层依次类推。
图6:VGG16网络感受野计算结果
5.Reference
【1】卷积神经网络物体检测之感受野大小计算 - machineLearning - 博客园
http://www.cnblogs.com/objectDetect/p/5947169.html
【2】对CNN感受野一些理解 - CSDN博客
https://blog.csdn.net/u010725283/article/details/78593410/
【3】感受野的详细介绍 - CSDN博客
https://blog.csdn.net/weixin_39912556/article/details/78366287?locationNum=2&fps=1
【4】无痛理解CNN中的感受野receptive field
https://zhuanlan.zhihu.com/p/22627224
【5】Receptive field(感受野)
https://www.jianshu.com/p/2b968e7a1715
【6】CNN中感受野的计算 - CSDN博客
https://blog.csdn.net/kuaitoukid/article/details/46829355
2020-12-09 深度学习 卷积神经网络中感受野的详细介绍相关推荐
- 深度学习 卷积神经网络原理
深度学习 卷积神经网络原理 一.前言 二.全连接层的局限性 三.卷积层 3.1 如何进行卷积运算? 3.2 偏置 3.3 填充 3.4 步长 3.5 卷积运算是如何保留图片特征的? 3.6 三维卷积 ...
- Lesson 12.1 深度学习建模实验中数据集生成函数的创建与使用
Lesson 12.1 深度学习建模实验中数据集生成函数的创建与使用 为了方便后续练习的展开,我们尝试自己创建一个数据生成器,用于自主生成一些符合某些条件.具备某些特性的数据集.相比于传统的机器学 ...
- 深度学习 卷积神经网络-Pytorch手写数字识别
深度学习 卷积神经网络-Pytorch手写数字识别 一.前言 二.代码实现 2.1 引入依赖库 2.2 加载数据 2.3 数据分割 2.4 构造数据 2.5 迭代训练 三.测试数据 四.参考资料 一. ...
- 毕设 深度学习卷积神经网络的花卉识别
文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...
- 毕业设计 - 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉
文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...
- 深度学习:神经网络中的激活函数
http://blog.csdn.net/pipisorry/article/details/71157037 激活函数 神经网络神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数, ...
- 【深度学习】caffe 中的一些参数介绍
[深度学习]caffe 中的一些参数介绍 标签: 深度学习caffe 2016-05-30 14:33 7122人阅读 评论(1) 收藏 举报 本文章已收录于: 分类: [机器学习&深度 ...
- 深入学习卷积神经网络中卷积层和池化层的意义(转)
为什么要使用卷积呢? 在传统的神经网络中,比如多层感知机(MLP),其输入通常是一个特征向量:需要人工设计特征,然后将这些特征计算的值组成特征向量,在过去几十年的经验来看,人工找到的特征并不是怎么好用 ...
- 深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)
卷积神经网络(Convolutional Neural Network,CNN)是一种前馈型的神经网络,其在大型图像处理方面有出色的表现,目前已经被大范围使用到图像分类.定位等领域中.相比于其他神经网 ...
最新文章
- usaco Telecowmunication(网络流)
- Java查询spark中生成的文件_java+spark-sql查询excel
- python基础知识思维导图-总结 Python 知识点思维导图
- iview form 表单 自定义参数验证 validate
- db2 sql执行历史_5 个免费的在线 SQL 数据库环境,比Navicat 香!
- html表ge模板_猿进化系列10——一文学会动态模板的套路
- 【EOS】2.4 EOS数据存储
- 我要注意的Java编码规范
- 文本分类pytorch Bert fine tune
- RS485电路原理以及设计
- unity内置浏览器插件UniWebView的使用(支持Android,ios,Mac)
- dos命令怎样进入计算机,怎么进DOS命令的方法
- 我的世界服务器彩虹云,《我的世界》彩虹云跑酷地图存档
- 题目:js实现求100以内的质数
- 如何从0到1搭建业务架构?
- ACdream 1069 无耻的出题人 无聊写着玩的题
- 一种NET软件加壳技术的设计与实现
- 超算计算机需要显卡吗,NVIDIA:中国超算性能世界第一认了 但省电我最强
- 求多个数最大公约数、最小公倍数的一种变换算法
- 应用于客户端的性能测试指标