一、关于各层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的一些分析的更多相关文章

  1. 电商系统中的商品模型的分析与设计—续

    前言     在<电商系统中的商品模型的分析与设计>中,对电商系统商品模型有一个粗浅的描述,后来有博友对货品和商品的区别以及属性有一些疑问.我也对此做一些研究,再次简单的对商品模型做一个介 ...

  2. AX中四种库存ABC分析法原理研究

    库存ABC分类,简单的说就是抓大放小,是为了让我们抓住重点,用最大精力来管理最重要的物料,而对于不太重要的物料则可以用较少的精力进行管理.它和我们平常说的八二法则有异曲同工之妙. 既然要应用库存ABC ...

  3. SQL中的Null深入研究分析

    SQL中的Null深入研究分析 虽然熟练掌握SQL的人对于Null不会有什么疑问,但总结得很全的文章还是很难找,看到一篇英文版的, 感觉还不错. Tony Hoare 在1965年发明了 null 引 ...

  4. try-catch-finally中return的执行情况分析

    try-catch-finally中return的执行情况分析: 1.在try中没有异常的情况下try.catch.finally的执行顺序 try --- finally 2.如果try中有异常,执 ...

  5. Java EE中的容器和注入分析,历史与未来

    Java EE中的容器和注入分析,历史与未来 java中的容器 java中的注入 容器和注入的历史和展望 一.java中的容器 java EE中的注入,使我们定义的对象能够获取对资源和其他依赖项的引用 ...

  6. 内核中container_of宏的详细分析【转】

    转自:http://blog.chinaunix.net/uid-30254565-id-5637597.html 内核中container_of宏的详细分析 16年2月28日09:00:37 内核中 ...

  7. MySQL中使用SHOW PROFILE命令分析性能的用法整理

    show profile是由Jeremy Cole捐献给MySQL社区版本的.默认的是关闭的,但是会话级别可以开启这个功能.开启它可以让MySQL收集在执行语句的时候所使用的资源.为了统计报表,把pr ...

  8. iptables中ULOG和NFLOG实现分析【转】

    原文地址:http://blog.csdn.net/eydwyz/article/details/52456335 ----------原文如下---------------------------- ...

  9. C++ 中数组做参数的分析

    C++ 中数组做参数的分析 1.数组降价问题? "数组引用"以避免"数组降阶",数组降阶是个讨厌的事,这在C语言中是个无法解决的问题,先看一段代码,了解什么是& ...

随机推荐

  1. HDU 5776 sum(抽屉原理)

    题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=5776 Problem Description Given a sequence, you're ask ...

  2. HDU1754-I Hate It (线段树)

    题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1754 I Hate It Time Limit: 9000/3000 MS (Java/Others ...

  3. Spring Boot 揭秘与实战(八) 发布与部署 - 远程调试

    文章目录 1. 依赖 2. 部署 3. 调试 4. 源代码 设置远程调试,可以在正式环境上随时跟踪与调试生产故障. 依赖 在 pom.xml 中增加远程调试依赖. <plugins> &l ...

  4. Prepare paddle in Docker1

    Use Docker 1. Install Docker sudo apt-get install -y docker.io a) pull repository from server in Chi ...

  5. JavaBasic_03

    变量 变量定义的格式: 数据类型 变量名 = 初始化值; 可以在一行中定义多个变量(在实际开发中不推荐,推荐一行定义一个变量)数据类型 变量名1=初始化值,变量名,...,变量名n        // ...

  6. [LeetCode&Python] Problem 21. Merge Two Sorted Lists

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...

  7. 打开视图 :1449 - the user specified as a definer ('root'@'%')does not exist

    从一个数据库数据迁移到本地localhost   程序在调用到数据库的视图时报错,直接在数据库中打开视图时也报错,类似:   mysql 1449 : The user specified as a ...

  8. 管道符和作业 shell变量 环境变量

    管道符  |      前一个命令的输出,变成后一个命令的输入 ctrl +z   暂停 bg  cmd   后台运行 fg  #  调回前台 直接让程序进入后台,可以在后面加上 cmd    &am ...

  9. django HttpResponse的用法

    一.传json字典 def back_json(rquest): #JsonResponse父类是HttpResponse,原码里调用了json.dumps() from django.http im ...

  10. Linux系统安全笔记

    Linux系统安全笔记 https://insecure.org/https://sectools.org/SecTools.Org:排名前125的网络安全工具 http://www.ibm.com/ ...