一、关于各层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. 给定两个数组,这两个数组是排序好的,让你求这两个数组合到一起之后第K大的数。

    题目:给定两个数组,这两个数组是排序好的,让你求这两个数组合到一起之后第K大的数. 解题思路: 首先取得数组a的中位数a[aMid],然后在b中二分查找a[aMid],得到b[bMid],b[bSt] ...

  2. random os 序列化 模块模块 随机选择

    # 1 random 模块 随机选择# import random#随机取小数# ret = random.random() #空是0到1之间的小数字# print(ret)# # 0.0799728 ...

  3. lvm逻辑卷扩容

    先扩容卷组在扩容逻辑卷 1.准备磁盘分区 #fdisk -l 2.查看当前的物理卷 #pvdisplay 3.准备物理卷 #pvcreate  /dev/sdb 4.查看vg #lvdisplay 5 ...

  4. ibatis集成封装之路(to mysql)

    hello <tx:annotation-driven transaction-manager=" "/> 插入记录ID的坑 https://renjieguixion ...

  5. 【转载】 深度学习总结:用pytorch做dropout和Batch Normalization时需要注意的地方,用tensorflow做dropout和BN时需要注意的地方,

    原文地址: https://blog.csdn.net/weixin_40759186/article/details/87547795 ------------------------------- ...

  6. Linux串口设备树硬件、软件流控设置

    /********************************************************************** * Linux串口设备树硬件.软件流控设置 * 说明: ...

  7. JAVA基础部分复习(四、抽象类与接口)

    抽象类与接口的定义: package cn.review.day02; /** * 抽象类 * 定义: * 1.抽象类使用关键字abstract修饰 * 2.抽象方法必须定义在抽象类中,抽象方法没有方 ...

  8. Gym-101673 :East Central North America Regional Contest (ECNA 2017)(寒假自训第8场)

    A .Abstract Art 题意:求多个多边形的面积并. 思路:模板题. #include<bits/stdc++.h> using namespace std; typedef lo ...

  9. HTML5的一些知识点

    1.新增很多api,比如获取用户的地理位置的window.navigator.geoloaction,history,audio,video,canvas 2.websocket;websocket是 ...

  10. 20155208 《Java程序设计》实验一(Java开发环境的熟悉)实验报告

    20155208 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验内容及步骤 (一)使用JDK编译.运行简单的java程序 命令行下的程序开发 打开windows下的 ...