This is the implementation of paper Hyperbolic Busemann Learning with Ideal Prototypes (NeurIPS2021).
As the first step, you should learn ideal prototypes for the classes in the ultimate task.
To run the code and learn the prototypes, the number of classes
and output dimension
should be specified.
To learn prototypes with 50 output dimensionality and 100 classes, use the code,
python prototype_learning.py -d 50 -c 100
The output will be prototypes-50d-100c.npy
saved in prototypes
directory.
Once the prototypes are ready, it's time to run the main code.
To run HBL.py
, the parameters in the argparser should be specified,
python HBL.py --data_name cifar100 -e 1110 -s 128 -r adam -l 0.0005 -c 0.00005 --mult 0.1 --datadir data/ --resdir runs/output_dir/cifar/ --hpnfile prototypes/prototypes-50d-100c.npy --logdir test --do_decay True --drop1 1000 --drop2 1100 --seed 100
Further explanation will be added soon.
Please consider citing this work using this BibTex entry,
@inproceedings{atigh2021hyperbolic,
title={Hyperbolic Busemann Learning with Ideal Prototypes},
author={Atigh, Mina Ghadimi and Keller-Ressel, Martin and Mettes, Pascal},
booktitle={Thirty-Fifth Conference on Neural Information Processing Systems},
year={2021}
}