Caffe code for our CVPR 2016 paper "Joint unsupervised learning of deep representations and image clusters". The Torch version code can be found here.
This project is a Caffe implementation for our CVPR 2016 paper, which performs jointly unsupervised learning of deep CNN and image clusters.
A great thanks to happynear for providing an awesome windows version Caffe-Windows. It is based on his code that we developed our JULE algorithm.
This code is released under the MIT License (refer to the LICENSE file for details).
If you find our code is useful in your researches, please cite:
@inproceedings{yangCVPR2016joint,
Author = {Yang, Jianwei and Parikh, Devi and Batra, Dhruv},
Title = {Joint Unsupervised Learning of Deep Representations and Image Clusters},
Booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
Year = {2016}
}
-
CUDA. Install CUDA on your PC. I used CUDA 7.5, but it should also work to use new versions.
-
Visual Studio. It is flexible to use various version of VS. I used VS2013 in my experiments.
-
Third Party. Caffe depends on several third-party libraries, including hdf5, boost, gflag, opencv, glog, to name a few. happynear has provided the compiled libraties at [Caffe-Windows] (https://github.com/happynear/caffe-windows). Download those libraries and place them in the root folder, then add the ./3rdparty/bin folder to your environment variable PATH. Please ensure that these libraries has the same dependency on CUDA to your project.
- Open ./buildVS2013/MainBuilder.sln using Visual Studio. Ideally, you will see 11 projects in one solution. Among them, you will mainly use caffelib and caffe_unsupervised to reproduce the results in our paper. However, the projects might crash because of different version of CUDA you are using. In this case, change the CUDA version in vcxproj file of each project.
We upload six small datasets: COIL-20, USPS, MNIST-test, CMU-PIE, FRGC, UMist. The other large datasets, COIL-100, MNIST-full and YTF can be found in my google drive here.
We upload the code for the compared approaches in matlab folder. Please refer to the original paper for details and cite them properly. In this foler, we also attach the evaluation code for two metric: normalized mutual information (NMI) and clustering accuracy (AC).
You are welcome to send message to (jw2yang at vt.edu) if you have any issue on this code.