This is very different from what "caffe train" reports when finishing training:
I1007 19:16:17.015362 4003 solver.cpp:753] Snapshotting solver state to binary proto file soln_iter_20000.solverstate
I1007 19:16:17.023927 4003 solver.cpp:327] Iteration 20000, loss = 0.288211
I1007 19:16:17.023952 4003 solver.cpp:347] Iteration 20000, Testing net (#0)
I1007 19:16:17.485422 4003 solver.cpp:415] Test net output #0: accuracy = 0.828
I1007 19:16:17.485445 4003 solver.cpp:415] Test net output #1: loss = 0.381967 (* 1 = 0.381967 loss)
I1007 19:16:17.485452 4003 solver.cpp:332] Optimization Done.
I1007 19:16:17.485458 4003 caffe.cpp:215] Optimization Done.
A few questions -
(1) there a command-line way to ask caffe to classify a single image? I fear it's some mistake in the way I'm using the python API.
(2) I previously found that if I am not careful about treating my mean image as grayscale, the accuracy is even worse, at 41%, but after I get the mean image loaded as a grayscale image correctly, it is still only 58% as above. What else might I be missing?
Here is my python script for reading and using my caffeemodel.
If it helps to know exact settings, the whole thing including test case generation is on github here - if you set CAFFE_HOME, you can just "make" to do the whole thing from beginning to end.