Caffe的输入数据归一化

Caffe's input data normalization

据我了解,如果我想将数据 [0, 255] 的归一化应用到 [0, 1),我可以在 [=35= 中传递比例参数:0.00390625 prototxt 文件的 ]。但是,如果我想在 prototxt 级别将数据标准化为 [-0.5, 0.5](以便具有 0 均值分布)怎么办?

考虑我的 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 均值是一种很好的做法。我可以放松这种指导吗?如果我忽略它,会有什么显着影响吗?

查看 caffe.protoTransformationParameter

的评论
// 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].

范围内