MatConvNet中关于vl_simplenn_display的一些分析

1人阅读 评论(0) 收藏 举报
分类:

一、关于各层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工具箱文档翻译理解四

第3章 包装器和预训练模型这是很容易的组合第4章“手动”的计算块,但通常通过一个包装器来使用它们可以实现CNN架构给定一个模型规范通常更方便,可用的包装器总结在3.1节。 MatConvNet还附带...
  • Enjolras_fuu
  • Enjolras_fuu
  • 2016-12-16 00:36:35
  • 2760

Matconvnet学习笔记

Introduction to Matconvnet   MatConvNet是实现用于计算机视觉领域的卷积神经网络(CNN)的MATLAB工具箱。自从取得突破性工作以来,CNN在计算机视觉领域有一...
  • Anysky___
  • Anysky___
  • 2016-05-09 21:02:03
  • 31302

深度学习 4. MatConvNet 相关函数解释说明,MatConvNet 细节理解,MatConvNet 代码理解

MatConvNet 相关函数解释说明,MatConvNet 细节理解,MatConvNet 代码理解
  • qq_20259459
  • qq_20259459
  • 2017-01-09 21:22:12
  • 5021

StudyAI上MatConvNet框架学习笔记之3:mnist实例代码分析

最近在StudyAI上学习了matconvnet框架讲解的课程,算是对这个框架有一个基本的了解,记性不好,将一些课程笔记记录下。1 文件分析在matconvnet框架中提供了mnist数据库识别的例程...
  • u012273127
  • u012273127
  • 2017-07-27 16:22:56
  • 1028

MatConvNet卷积神经网络(四)——用自己的数据训练

尝试过从Matconvnet官网上下载的已经训练好的神经网络之后,最近自己训练了能够识别果树上红苹果的神经网络。先上图。 下面分享一下经验。 以下内容看之前,希望已经阅读过Matconvne...
  • z49434574
  • z49434574
  • 2016-09-24 23:37:07
  • 11679

MatConvNet中mnist源码解析

本文的代码来自MatConvNet   下面是自己对代码的注释:   cnn_mnist_init.mfunction net = cnn_mnist_init(varargin)...
  • u010402786
  • u010402786
  • 2016-05-10 16:01:44
  • 10377

MatConvNet 网络模型结构可视化的方法

matlab中 MatConvNet 网络模型结构可视化的方法
  • kekong0713
  • kekong0713
  • 2017-06-03 20:08:20
  • 1052

Matconvnet工具箱在Matlab中的安装

将官网http://www.vlfeat.org/matconvnet/quick/上的“Quick start”中的代码拷贝到Matlab工作空间并运行即可进行自动下载并安装。 自动安装时,程序包...
  • wangxiao7474
  • wangxiao7474
  • 2016-10-17 10:10:06
  • 4968

Matconvnet学习——利用mnist网络训练自己的数据分辨左右手

本人新手入门深度学习,在此记录一下自己学习过程中的心得和自己做的小项目 这里的小课题主要是用在生物特征识别中,目前最广泛的有掌纹识别虹膜识别,我们的这个课题组主要是做手掌静脉识别的,通过红外成像得到掌...
  • cathy1908
  • cathy1908
  • 2017-04-12 14:25:49
  • 1331

MatConvNet使用入门之基础篇

深度学习在object tracking中的使用也越来越多,从去年的VOT结果来看,很多tracker都应用了convolution feature,整体效果都比之前的方法提高了一大截,所以学习dee...
  • sgfmby1994
  • sgfmby1994
  • 2017-04-25 15:06:26
  • 5727
    个人资料
    等级:
    访问量: 32万+
    积分: 3653
    排名: 1万+
    最新评论