首页 > 编程知识 正文

支持向量机的基本思想,深度可分离卷积的计算量

时间:2023-05-04 17:29:41 阅读:31292 作者:3966

学习RCNN系列论文时,感受野(receptive field )的名词出现了。 虽然在网上没有找到特别详细的介绍,但是为了加深印象,希望大家能记录下自己对感受的理解,对通过CNN进行物体检测的过程有所帮助。

1感受场概念卷积神经网络中,感受场的定义是卷积神经网络各层输出的特征图上像素点在原始图像上映射的区域大小。

在RCNN论文中,从Alexnet网络pool5输出的特征图上的像素在输入图像中具有大的感知范围(haveverylargereceptivefields,195195像素)和步长(strides )

2敏感区大小的计算敏感区的计算可能包括:

(1)第1层卷积层的输出特征像素的感知范围的大小与滤波器的大小相等

)2)深层卷积层感觉区的大小与所有先前层的滤波器大小和步长有关

)3)计算感知区的大小时,忽略了图像边缘的影响,即没有考虑填充的大小。 关于这个问题,请阅读参考报道2的解答并理解

这里的每个卷积层也有strides的概念。 此strides是以前所有层的stride的乘积。

即,strides(I )=stride(1) stride )……(* stride (I-1 ) ) ) ) ) ) ) ) )

关于感觉野的大小的计算,采用了top to down方式。 也就是说,可以用先计算最深层前一层的感觉区,然后传递给第一层的方式,表示如下。

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /

stride表示卷积步骤; fsize表示卷积层滤波器的大小

用python实现了计算VGG16网络各层输出功率图的感觉野大小,实现了代码:

#!/usr/bin/envpythonnet={ ' net ' : [ 3,1,1 ],[ 3,1,1 ],[ 2,2,0 ],[ 3,1,1 ],[ ' conv2_2'、' pool2'、' conv3_1'、' conv3_2'、' conv3_3'、' pool3'、' conv4_1'、' conv4_2', layernum ) : totstride=1 #这是当前层和上一层步骤的累积大小=iszforlayerinrange (llayerinrange ), pad=net [ layer ] out size=(in size-fsize2* pad )/stride 1in size=outsizetotstride=tot stride * stride return totstrided layernum ) : RF=1 #对最后一层前一层的感觉范围为1 forlayerinreversed (range (layer num ) ) : #从最后一层到前一层的数量t=,即pad=net[layer] # padRF=((RF-1 ) * stride ) fsize #最后一个# print(t ) t、stride、fsize, RF ) returnrfif _ _ name _=' _ main _ ' : foriinrange (len (net (' net ' ) ) : #分阶段处理p=outfromme=533: ' * * ' (print ) ) layername=%s,output size==RF size=' % (net [ ' name ' ] [ I ],p[0],p[1],RF ) )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。