I use model definition(models/bvlc_alexnet/train_val.prototxt) and training protocol(models/bvlc_alexnet/solver.prototxt) provided by caffe to train alexnet on ImageNet.The only modification I made is replacing mean.binaryproto with mean values computed by Facebook.And I have checked they are very close: 103.894,116.555,122.579 vs 103.94,116.78,123.68 .
But the accuracy on validation set I got is 55.06% which is observably low compared to the one reported by caffe comunity(57.1%,https://github.com/BVLC/caffe/tree/master/models/bvlc_alexnet).
The differences of mean values are tiny so I think there are other reasons making such a large drop in accuracy.
Then I use pre-trained caffemodel provided by caffe(http://dl.caffe.berkeleyvision.org/bvlc_alexnet.caffemodel) and get the accuracy.It still fall behind the reference accuracy, 55.9% vs 57.1%.
The imagenet lmdb dataset are created by script at examples/imagenet/create_imagenet.sh with RESIZE=true.
Could anyone give some suggestions about this problem?
//train alexnet using caffe
./build/tools/caffe train -gpu 0 -solver models/bvlc_alexnet/solver.prototxt
//use pre-trained alexnet model
./build/tools/caffe test -gpu 0 -model models/bvlc_alexnet/train_val.prototxt -weights models/bvlc_alexnet.caffemodel
Operating system:Ubuntu 16.04
Compiler:nvcc-8,gcc-5.4.0
CUDA version (if applicable):CUDA8
CUDNN version (if applicable):cudnn515
BLAS:atlas ,cublas8.0