此篇文章主要是给大家介绍了Caffe神经网络视觉效果层VisionLayers及主要参数详细说明,感兴趣的小伙伴可以参考参考一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪
前言
每一个层都有着的主要参数,如name,type,bottom,top和transform_param请参考我前篇文章:Caffe神经网络数据访问层及主要参数
文中只解读视觉效果层(VisionLayers)的主要参数,视觉效果层包含Convolution,Pooling,LocalResponseNormalization(LRN),im2col等层。
1、Convolution层:
便是卷积层,是神经网络(CNN)的核心员工。
层种类:Convolution
lr_mult:学习率的指数,最后的学习率就是这个数乘以solver.prototxt环境变量中的base_lr。
若是有两个lr_mult,则第一位表明权重值的学习率,第2个表明偏置项的学习率。通常偏置项的学习率是权重值学习率两倍。
后边的sonvolution_param中,我们能设定卷积层的独有主要参数。
务必设定的主要参数:
num_output:全连接层(filter)的数量
kernel_size:全连接层大小。假如全连接层的长度宽度不一,要用kernel_h和kernel_w各自设定
其它主要参数:
stride:全连接层的步幅,默认1。还可以用stride_h和stride_w来设定。
pad:扩大边沿,默认0,不扩大。扩大时是上下、上下对称的,例如全连接层大小为5*5,那样pad设为2,则4个边沿都扩大2个清晰度,即宽和相对高度都扩大了4个清晰度,那样离散卷积以后的特征图也就不会缩小。还可以通过pad_h和pad_w来各自设定。
weight_filler:权重值复位。默认“constant",值均为0,有时候我们用"xavier"优化算法去进行复位,还可以设为”gaussian"
bias_filler:偏置项的复位。通常设为"constant",值均为0。
bias_term:是不是打开偏置项,默认true,打开
group:分类,默认1组。假如超过1,大家限定卷积和联接实际操作在这个子集合内。假如我们依据图象通道来分类,那样第i个导出分类只有与第i个键入分类开展联接。
如果设置stride为1,前后两次卷积部分存在重叠。如果设置pad=(kernel_size-1)/2,则运算后,宽度和高度不变。
示例
layer{ name:"conv1" type:"Convolution" bottom:"data" top:"conv1" param{ lr_mult:1 } param{ lr_mult:2 } convolution_param{ num_output:20 kernel_size:5 stride:1 weight_filler{ type:"xavier" } bias_filler{ type:"constant" } } }
2、Pooling层
也叫池化层,为了减少运算量和数据维度而设置的一种层。
层类型:Pooling
必须设置的参数:
kernel_size:池化的核大小。也可以用kernel_h和kernel_w分别设定。
其它参数:
pool:池化方法,默认为MAX。目前可用的方法有MAX,AVE,或STOCHASTIC
pad:和卷积层的pad的一样,进行边缘扩充。默认为0
stride:池化的步长,默认为1。一般我们设置为2,即不重叠。也可以用stride_h和stride_w来设置。
示例:
layer{ name:"pool1" type:"Pooling" bottom:"conv1" top:"pool1" pooling_param{ pool:MAX kernel_size:3 stride:2 } }
pooling层的运算方法基本是和卷积层是一样的。
如果设置stride为2,前后两次卷积部分不重叠。100*100的特征图池化后,变成50*50.
3、Local Response Normalization(LRN)层
此层是对一个输入的局部区域进行归一化,达到“侧抑制”的效果。可去搜索AlexNet或GoogLenet,里面就用到了这个功能
层类型:LRN
参数:全部为可选,没有必须
local_size:默认为5。如果是跨通道LRN,则表示求和的通道数;如果是在通道内LRN,则表示求和的正方形区域长度。
alpha:默认为1,归一化公式中的参数。
beta:默认为5,归一化公式中的参数。
norm_region:默认为ACROSS_CHANNELS。有两个选择,ACROSS_CHANNELS表示在相邻的通道间求和归一化。WITHIN_CHANNEL表示在一个通道内部特定的区域内进行求和归一化。与前面的local_size参数对应。
归一化公式:对于每一个输入,去除以
得到归一化后的输出
示例:
layers{ name:"norm1" type:LRN bottom:"pool1" top:"norm1" lrn_param{ local_size:5 alpha:0.0001 beta:0.75 } }
4、im2col层
如果对matlab比较熟悉的话,就应该知道im2col是什么意思。它先将一个大矩阵,重叠地划分为多个子矩阵,对每个子矩阵序列化成向量,最后得到另外一个矩阵。
看一看图就知道了:
在caffe中,卷积运算就是先对数据进行im2col操作,再进行内积运算(inner product)。这样做,比原始的卷积操作速度更快。
看看两种卷积操作的异同:
综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/128772.html
摘要:陈建平说训练是十分重要的,尤其是对关注算法本身的研究者。代码生成其实在中也十分简单,陈建平不仅利用车道线识别模型向我们演示了如何使用生成高效的代码,同时还展示了在脱离环境下运行代码进行推断的效果。 近日,Mathworks 推出了包含 MATLAB 和 Simulink 产品系列的 Release 2017b(R2017b),该版本大大加强了 MATLAB 对深度学习的支持,并简化了工程师、...
摘要:深度神经网络能够焕发新春,大数据功不可没,然而大数据的版权是否应当延伸到深度学习产生的知识,这是一个现实的问题。要获得有用的学习效果,大型多层深度神经网络又名深度学习系统需要大量的标签数据。 深度神经网络能够焕发新春,大数据功不可没,然而大数据的版权是否应当延伸到深度学习产生的知识,这是一个现实的问题。本文通过ImageNet可视化大数据、Caffe共享深度学习模型和家中训练三个场景审查了深...
摘要:将这些需要保留的信息直接通过恒等映射进行传输,展示了中的很多层对最终的结果影响极小,可以在训练时随机丢弃部分层。得益于密集连接的方式,可以同时具有恒等映射深度监督和深度多样性的特性。 DenseNet Densely Connected Convolutional NetworksGao Huang, Zhuang Liu, Kilian Q. Weinberger, Laurens ...
早期成果卷积神经网络是各种深度神经网络中应用最广泛的一种,在机器视觉的很多问题上都取得了当前较好的效果,另外它在自然语言处理,计算机图形学等领域也有成功的应用。第一个真正意义上的卷积神经网络由LeCun在1989年提出[1],后来进行了改进,它被用于手写字符的识别,是当前各种深度卷积神经网络的鼻祖。接下来我们介绍LeCun在早期提出的3种卷积网络结构。 文献[1]的网络由卷积层和全连接层构成,网络...
阅读 889·2023-01-14 11:38
阅读 833·2023-01-14 11:04
阅读 684·2023-01-14 10:48
阅读 1887·2023-01-14 10:34
阅读 891·2023-01-14 10:24
阅读 750·2023-01-14 10:18
阅读 479·2023-01-14 10:09
阅读 519·2023-01-14 10:02