2017-02-27 42 views
0

据我理解如果我想申请数据的归一化[0,255]至[0,1),I可以通过标尺的参数:在prototxttransform_param 0.00390625文件。但是,如果我想执行数据的标准化为[-0.5,0.5](以便具有0均值分布),那么原型文件的级别呢?来自Caffe的输入数据归一化

考虑我train_val.prototxt文件看起来像如下:

transform_param { 
    mirror: true 
    crop_size: 227 
    scale: 0.00390625 
    mean_file: "some_mean_file.binaryproto" 

从数学上来说,我认为它看起来象下面这样:

normalized value = (input pixel value/255) - 0.5 

,但我无能如何映射到由于比例值没有负值(有符号值)的概念,因此比例值transform_param。或许,Caffe有不同的机制来实现这一点(而不是通过规模化操作)。

根据我对Udacity关于深度学习的讲解的理解,它提到总是对输入进行规范化以达到平均值是一种好习惯。我可以放松这种指导吗?如果我忽略它会有什么重大影响?

+0

我已经看过它,但似乎没有这样的机制,我可以正常化输入到[-0.5,0.5]。 –

+0

是的,你是对的,Shai。我忽视了,不从这个角度看待;-)。无论如何,谢谢你。 –

+0

@Shai:或许,如果你不介意的话,你可以在答案框中将上述想法复制到答案框中,以便将其标记为答案。 –

回答

1

看着caffe.proto评论上TransformationParameter

// For data pre-processing, we can do simple scaling and subtracting the 
// data mean, if provided. Note that the mean subtraction is always carried 
// out before scaling. 

意味着减法之前比例进行,因此,减去mean_file后,你的数据是大约在范围[-128. 128]。将它缩放1/256,完成后,您的数据应大致在范围[-.5, .5]