The paper is available on arxiv.
You need to have anaconda installed to run this repository. Miniconda does the job perfectly.
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
We provided a file containing all dependencies required to run any experiments. We recommend using it inside a new virtual environment.
conda env create -n improving-fs-ssl
conda env update -f environement.yml
Some development libraries may also be useful.
conda env update -f environment-dev.yml
Finally you have to install the current project.
pip install -e .
It is possible to run experiments with collab by using the notebook notebook/improving-fs-ssl.ipynb
.
Experiments are launched via ./scripts/train.py
.
To reproduce some experiments, e.g CIFAR-FS - Sup. + BYOL
, you can specified a combination of multiple configuration files that are provided under the config
directory.
./scripts/train.py -c config/cifar_fs.yml config/supervised_byol.yml config/seed_1.yml -o /path/to/trained/experiment/
It is also possible to create your own configuration file to override some defaults, all defined in mcp/config/parser.py
.
Evaluation are simply ran using the script ./scripts/eval.py
.
You simply need to provide the path to a trained experiment and the evaluation configuration will be read automatically.
./scripts/eval.py -r /path/to/trained/experiment/
To plot some default visualizations and get some results, you may run the script ./scripts/viz.py
similar to evaluation.
The plots will be saved under the path provided.
./scripts/viz.py -r /path/to/trained/experiment/