This README describes the core implementation of classificatin using
hyperspherical prototype networks. The code is designed to run experiments on
the classification datasets investigated in the paper.

NOTE: We will release the full code and computed prototypes upon acceptance.

The following files and folders are in the implementation:
- hyper[...]supp.pdf  : Supplementary file for submission.
- README.txt          : This file.
- hpnc_cifar.py       : Classification on CIFAR-100.
- hpnc_imagenet200.py : Idem for ImageNet-200.
- hpnc_cub.py         : Idem for CUB Birds.
- models/             : Code for network architectures.
- helper.py           : Helper script for loading data and more.
- prototypes/         : Folder containing multiple prototypes.

To see which parameters can be set for the main file, type:

python hpnc_cifar.py -h

An example classification is as follows:

python hpnc_cifar.py --polarfile prototypes/sgd/prototypes-100d-100c.npy -e 10

The code above runs hyperspherical prototype networks for 10 epochs using the assigned prototypes.
The core hyperparameters are set as described in the paper.

NOTE: The ImageNet-200 and CUB Birds datasets need to be downloaded from their respective website.
Both datasets need to be pre-processed by placing each train and test image in a folder corresponding to their class.
