caffe中过滤器内的值

时间:2017-03-06 11:46:27

标签: neural-network deep-learning caffe

我试图理解caffe网络模型中的以下部分。

 convolution_param {
    num_output: 256
    pad: 2
    kernel_size: 5
    group: 2
    weight_filler {
      type: "gaussian"
      std: 0.01
    }
    bias_filler {
      type: "constant"
      value: 1
    }
}

据我所知,这一层使用了256个过滤器。 我想知道如何选择这些过滤器中的值? 使用大小5x5和std dev 0.01,我们可以创建一个过滤器,如何创建其他过滤器?

1 个答案:

答案 0 :(得分:1)

根据此图层的输入尺寸(“通道”形状),此图层具有256个形状为in-dim的滤镜 - 按 - 5 - 按 - 5。 Caffe使用来自高斯(正态)分布的i.i.d随机样本初始化所有这些值(根据weight_filler param),零均值和std = 0.01。

您可以在python中看到值(假设图层名称为"conv1"):

import caffe
net = caffe.Net('/path/to/net.prototxt', caffe.TEST)
layer_idx = list(net._layer_names).index('conv1')
weights = net.layers[layer_idx].blobs[0].data
print "filter values =", weights