Convolutional Neural Network for feature extraction with unsupervised feature clustering. Using the Cifar-10 dataset on Caffe.
First, following the Caffe Cifar-10 Tutorial, download and convert the data into leveldb format for training the network using the scripts provided in Caffe: /data/cifar10/get_cifar10.sh and /examples/cifar10/create_cifar10.sh. Run these scripts from the root directory of Caffe. This should give a mean.binaryproto file along with the leveldb data, remember the path of this file or copy it somewhere handy since it will be used later. Now, train the network using one of the training scripts in the Caffe examples/cifar10 directory.
After training, you should have a .caffemodel file that holds the weights of the network. It is convenient to copy this and the deploy .prototxt corresponding to whichever training .prototxt you used to this repository's directory along with the mean.binaryproto file from earlier. You will also need the file batches.meta.txt, which contains the label names, this should have come with the data downloaded earlier, and should be able to be found in $CAFFE_ROOT/data/cifar10. You can use the cifar10 train lmdb you generated earlier to supply test images and their labels. Now set all the paths to point to the correct files in main.py and the parameters. Finally, run main.py. After a few minutes, the results should be saved.