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.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]
.
范围内
据我了解,如果我想将数据 [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.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]
.