Caffe中parameter filler的作用和类型
作用
Fillers是caffe用特定算法随机生成的值来填充网络参数在blob里面的初始值。它只作用在参数的初始化阶段,与gpu无关的操作。
类型
- Constant : 令填充值 x=0
- Uniform : 令填充值 x∼U(a,b)
- Gaussian : 令填充值 x=a
- PositiveUnitball : 令填充值 x∈[0,1] ∀i∑jxij=1
- Xavier :令填充值 x∼U(−a,+a) ; 其中 a 与输入节点,输出节点或着两者的均值成反比 (该算法是Bengio和Glorot 2010在Understanding the difficulty of training deep feedforward neuralnetworks里提出的)
- MSRA : 令填充值
x∼N(0,σ2) ; 其中 a <script type="math/tex" id="MathJax-Element-18">a</script>与输入节点,输出节点或着两者的均值成反比 (该算法是Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun在Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification里提出的) - bilinear : 一般用在deconvolution 层做upsampling;例子如下:
layer {
name: "upsample", type: "Deconvolution"
bottom: "{{bottom_name}}" top: "{{top_name}}"
convolution_param {
kernel_size: {{2 * factor - factor % 2}} stride: {{factor}}
num_output: {{C}} group: {{C}}
pad: {{ceil((factor - 1) / 2.)}}
weight_filler: { type: "bilinear" } bias_term: false
}
param { lr_mult: 0 decay_mult: 0 }
}
更多细节读者可以查看这里.