caffe 过滤器中的值
Values inside filters in 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 和标准开发 0.01 我们可以创建一个过滤器,如何创建其他过滤器?
根据该层的输入维度("channel" 形状),该层有 256 个形状为 in-dim
-by-5
-by-5
的过滤器. Caffe 初始化所有这些值(根据 weight_filler
参数),其中 i.i.d 随机样本来自均值为零且标准差为 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
我正在尝试理解 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 和标准开发 0.01 我们可以创建一个过滤器,如何创建其他过滤器?
根据该层的输入维度("channel" 形状),该层有 256 个形状为 in-dim
-by-5
-by-5
的过滤器. Caffe 初始化所有这些值(根据 weight_filler
参数),其中 i.i.d 随机样本来自均值为零且标准差为 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