Improve and polish pycaffe

- fix input preprocessing configuration in 3cac223 picking up on #733
- update examples' outputs given correct preprocessing 9d7346b, always include caffe pythonpath 45d74bd, and reword classification + time on a gtx 770 fc01ee6
- add console output with human-readable labels and a grayscale flag to classify.py courtesy of @petewarden's #735
- fix #525 by scaling data to [0, 255], doing mean subtraction, and then input scaling
I vote for the label file simply listing outputs in order. If you have a
chance to fix this up to finish it, please do. My machine's haywire again
so I'm stuck setting up a substitute.

On Tuesday, August 5, 2014, longjon <notifications@github.com> wrote:

> In python/classify.py:
>
> >      print "Done in %.2f s." % (time.time() - start)
> >
> > -    # Save
> > -    np.save(args.output_file, predictions)
> > +    if args.print_results:
> > +        import pandas as pd
>
> I see... we should at least make this code less circuitous, but also think
> about if this is really what we want to do here. Currently we are enforcing
> the convention that outputs are in id-sorted order, although this is not
> necessary and sometimes other conventions (e.g., alphabetical order) are
> used.
>
> Another option would be to have the label file simply list the outputs in
> order (removing the first column from mnist_words.txt), which would
> simplify this code, remove this hidden assumption, and make it simple to
> (e.g.) include the synset ids in the label output. A third option would be
> to make the map between integer outputs and labels always explicit (adding
> another column to synset_words.txt), thus allowing labels to be written
> out-of-order, but still removing the hidden assumption.
>
> What do y'all think?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/BVLC/caffe/pull/816/files#r15836625>.
>