我想微调VGG19,它运作良好。训练时我将平均像素减去
name: "VGG_ILSVRC_19_layer"
layer {
name: "data"
type: "Data"
include {
phase: TRAIN
}
transform_param {
mean_value: 104
mean_value: 117
mean_value: 123
mirror: false
}
data_param {
source: "examples/VGG_finetune/train_lmdb"
batch_size: 8
backend: LMDB
}
top: "data"
top: "label"
}
现在我需要通过我的微调网络前进。如果我看一下this 它们没有在部署文件中指定平均像素值。
问题:
如何在前馈时提供网络平均像素值?
我的前馈代码(加载网络)是
net = caffe.Classifier(model_prototxt, model_trained,
mean=[104,117,123],
channel_swap=(2,1,0),
raw_scale=255,
image_dims=(224, 224))
现在我不确定mean=(104,117,123)
是否有效,因为当我查看classifier
的源代码时,我通过代码中的注释知道它只需要ndarray
否则它会给出错误。
如何从输入图像中减去平均像素?
答案 0 :(得分:3)
您可以通过
将mean
指定为ndarray
net = caffe.Classifier(model_prototxt, model_trained,
mean=NP.array( [104, 117, 123], dtype='f4'),
channel_swap=(2,1,0),
raw_scale=255,
image_dims=(224, 224))