Use list to save memory
Get cuda-convnet repository path from CUDA_CONVNET; Use list (packs) to save memory with metadata; Use CIFARDataProvider defaults (32, 32) in ccn-make-batches; Fix image orientation in ccn-make-batches; Save CSV header in write_predictions; Let metadata be optional; Fix ValueError exception with multi-label classifiers in report.
I'm afraid that this is too many things in one. Some of these things are definitely improvements I want to merge. Others raise questions, and I'd like to be able to merge these things individually.
Also 2beeb59 has a commit message that suggests it does two useful things. But then it turns out that it breaks the old pickle format to use "packs" instead of "metadata" for no obvious reason (there's no reason given in the commit).
So if we could get these things split up into individual pull requests (maybe put trivial backward compatible improvements together into one), then that'd be useful. Thanks.
Setting PYTHONPATH works; I didn't think of that.
The ideal solution is if cuda-convnet is a regular setup.py package to keep the global namespace clean.
I will separate the commits when I have more time next week; thanks for reviewing my suggestions.
Also, the reason I used packs instead of metadata is because the metadata dictionary was using too much memory for more than a million labels. I changed the name to make it clear that we now have a packs list instead of a metadata dictionary and to make it easier to detect when dependent code breaks because it expects metadata.