MatConvNet中关于vl_simplenn_display的一些分析
一、关于各层data size的分析
layer1: floor((224-7)/2)+1=109
这里7是filter大小,2是stride
layer4: floor((109+0+1-3)/2)+1=54
这里0和1是前向和后向的pad,3是filter大小,2是stride
layer5:floor((54+1+1-5)/2)+1=26
floor((54+1-5)/2)+1=26
不知道上面那个是正确的,就是不知道layer5的pad的1是只一个方向(后)pad1,还是两个方向(前,后)都pad1
layer8: floor((26+0+1-3)/2)+1=13
layer11: floor(13+1+1-3)/1)+1=13
floor(13+1-3)/1)+1=12
从这里可以知道layer5的第一个公式是正确的,也就是前后两个方向都pad 1,如果是2维图像,则在上下左右都pad了1.
二、关于rf size的分析
这里的rf是指receptive field,各层接受野的计算思路如下:
按照这个思路就很容易理解这段代码:(上图蓝色圆珠笔有误,应该是layer1,4,5;我写成了layer1,2,3)
info.receptiveFieldSize(1:2,l) = 1 + ...
sum(cumprod([[1;1], info.stride(1:2,1:l-1)],2) .* ...
(info.support(1:2,1:l)-1),2) ;%只要画图就可以计算出来
三、关于rf offset的分析
首先layer1 如果以中心对齐,可以看到原先的像素4对应了layer1的△1,所以layer1的offset就是4
layer4: layer4是三个layer1对应一个layer4,所以layer1的△2对应了layer4的○1,而layer1的△2对应的实际上是原先输入像素的6,即offset是6
layer5: layer5是五个layer4对应一个layer5,所以layer4的○3对应了layer5的□1,而layer4的○3对应了layer1的△6,进一步的实际上是原先输入像素的14
但是这个值和上面display出来的结果是不一样的,实际上layer5有一个pad的操作,这个操作当然是对layer4去pad,如果去考虑这个pad,那么:
layer4的○2对应了layer5的□1,而layer4的○2对应了layer1的△4,进一步的实际上是原先输入像素的10,即offset是10
这样就和simplenn_display出来的结果一样了,有了这个思路,就很好去理解:
info.receptiveFieldOffset(1:2,l) = 1 + ...
sum(cumprod([[1;1], info.stride(1:2,1:l-1)],2) .* ...
((info.support(1:2,1:l)-1)/2 - info.pad([1 3],1:l)),2) ;
MatConvNet中关于vl_simplenn_display的一些分析的更多相关文章
- 电商系统中的商品模型的分析与设计—续
前言 在<电商系统中的商品模型的分析与设计>中,对电商系统商品模型有一个粗浅的描述,后来有博友对货品和商品的区别以及属性有一些疑问.我也对此做一些研究,再次简单的对商品模型做一个介 ...
- AX中四种库存ABC分析法原理研究
库存ABC分类,简单的说就是抓大放小,是为了让我们抓住重点,用最大精力来管理最重要的物料,而对于不太重要的物料则可以用较少的精力进行管理.它和我们平常说的八二法则有异曲同工之妙. 既然要应用库存ABC ...
- SQL中的Null深入研究分析
SQL中的Null深入研究分析 虽然熟练掌握SQL的人对于Null不会有什么疑问,但总结得很全的文章还是很难找,看到一篇英文版的, 感觉还不错. Tony Hoare 在1965年发明了 null 引 ...
- try-catch-finally中return的执行情况分析
try-catch-finally中return的执行情况分析: 1.在try中没有异常的情况下try.catch.finally的执行顺序 try --- finally 2.如果try中有异常,执 ...
- Java EE中的容器和注入分析,历史与未来
Java EE中的容器和注入分析,历史与未来 java中的容器 java中的注入 容器和注入的历史和展望 一.java中的容器 java EE中的注入,使我们定义的对象能够获取对资源和其他依赖项的引用 ...
- 内核中container_of宏的详细分析【转】
转自:http://blog.chinaunix.net/uid-30254565-id-5637597.html 内核中container_of宏的详细分析 16年2月28日09:00:37 内核中 ...
- MySQL中使用SHOW PROFILE命令分析性能的用法整理
show profile是由Jeremy Cole捐献给MySQL社区版本的.默认的是关闭的,但是会话级别可以开启这个功能.开启它可以让MySQL收集在执行语句的时候所使用的资源.为了统计报表,把pr ...
- iptables中ULOG和NFLOG实现分析【转】
原文地址:http://blog.csdn.net/eydwyz/article/details/52456335 ----------原文如下---------------------------- ...
- C++ 中数组做参数的分析
C++ 中数组做参数的分析 1.数组降价问题? "数组引用"以避免"数组降阶",数组降阶是个讨厌的事,这在C语言中是个无法解决的问题,先看一段代码,了解什么是& ...
随机推荐
- 18-09-08 关于Linux 的安装遇到的一些小坑
具体参考我的有道笔记 备注 那个网络问题已经解决 先自动选择打上勾 然后在进行选择 并且正确输入 IP地址之类的 ====用utrallo 制作centos7.0 报错 以下是新的工具有效===== ...
- js-null 、undefined
注意:null 转为数值时为0,而 undefined 转为数值时为 NaN. Number(undefined) // NaN Number(null) // 0 null 表示"没有对象 ...
- JavaScript条件语句4--分支语句--if
JavaScript条件语句--分支语句 学习目标 1.掌握条件语句if 2.掌握prompt()的应用 3.掌握alert的应用 If语句 语法一: If(condition){ statement ...
- 百练6247-过滤多余的空格-2015正式B题
B:过滤多余的空格 总时间限制: 1000ms 内存限制: 65536kB 描述 一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格. 输入 一行,一个字符串(长度不超过200),句子的 ...
- 百练1041-反反复复-2016正式C题
C:反反复复 总时间限制: 1000ms 内存限制: 65536kB 描述 Mo和Larry发明了一种信息加密方法.他们首先决定好列数,然后将信息(只包含字母)从上往下依次填入各列,并在末尾补充一 ...
- 使用libcurl作为Http client
产品通过HTTP协议为外部提供接口服务,常规情况是客户通过HTTP协议请求服务,服务结束后通过HTTP协议将服务记录POST到请求方. 用原生C实现了一个简单的HTTP Client,只有简单的功能: ...
- Unity 3D-Canvas画布的三种模式
Unity开发VR之Vuforia 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...
- 嵌套for
- Django book manage system
创建一个简易的可以增删改查book的书籍管理system urls.py from django.contrib import admin from django.urls import re_pat ...
- 04 jsp,EL,JSTL
jsp:Java Server Page 什么是jsp?从用户角度看待 ,就是是一个网页 , 从程序员角度看待 , 其实是一个java类, 它继承了servlet,所以可以直接说jsp 就是一个Se ...