据我所知,如果我想将数据[0,255]的规范化应用于[0,1],我可以在 transform_param 中传递一个scale: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 的意思是一个好习惯。我可以放松这种指南吗?如果我忽略它会产生什么重大影响?
答案 0 :(得分:1)
查看TransformationParameter
caffe.proto
条评论
// 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]
范围内。