I try to train alexnet over ImageNet. I read its train_val.prototxt, its transform_param is as below:
transform_param {
mirror: true
crop_size: 227
mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
}
But in the example of MNIST tutorial, there is a scale parameter to normalize the pixel value from [0, 255] to [0, 1], listed as below:
transform_param {
scale: 0.00390625
}
And I tried to add "scale: 0.00390625" in the transform_param in my case, the accuracy becomes very poor.
Is the lmdb data converted by "build/tools/convert_imageset" already normalized? I tried to trace the codes in "tools/convert_imageset" and I found the image is loaded by function "ReadImageToDatum". Then ReadFileToDatum is called in ReadImageToDatum. Finally in ReadFileToDatum, I still don's see any codes normalizing the pixel value.
Why scale: 0.00390625 is only available in MNIST example but not in other examples? If the lmdb data is normalized, when and where has the normalization been done? thanks