This repository contains the official implementation of the NeurIPS'21 paper, ROADMAP: Robust and Decomposable Average Precision for Image Retrieval.
This repository contains the source code for our ROADMAP paper (NeurIPS 2021).
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
We use the following datasets for our submission
The following command reproduce our results for Table 4.
CUDA_VISIBLE_DEVICES=0 python roadmap/single_experiment_runner.py \
'experience.experiment_name=sop_ROADMAP_${dataset.sampler.kwargs.batch_size}_sota' \
experience.seed=333 \
experience.max_iter=100 \
'experience.log_dir=${env:HOME}experiments/ROADMAP' \
optimizer=sop \
model=resnet \
transform=sop_big \
dataset=sop \
dataset.sampler.kwargs.batch_size=128 \
dataset.sampler.kwargs.batches_per_super_pair=10 \
loss=roadmap
With the transformer backbone :
CUDA_VISIBLE_DEVICES=0 python roadmap/single_experiment_runner.py \
'experience.experiment_name=sop_ROADMAP_${dataset.sampler.kwargs.batch_size}_DeiT' \
experience.seed=333 \
experience.max_iter=75 \
'experience.log_dir=${env:HOME}/experiments/ROADMAP' \
optimizer=sop_deit \
model=deit \
transform=sop \
dataset=sop \
dataset.sampler.kwargs.batch_size=128 \
dataset.sampler.kwargs.batches_per_super_pair=10 \
loss=roadmap
For ROADMAP sota results:
CUDA_VISIBLE_DEVICES='0,1,2' python roadmap/single_experiment_runner.py \
'experience.experiment_name=inat_ROADMAP_${dataset.sampler.kwargs.batch_size}_sota' \
experience.seed=333 \
experience.max_iter=90 \
'experience.log_dir=experiments/ROADMAP' \
optimizer=inaturalist \
model=resnet \
transform=inaturalist \
dataset=inaturalist \
dataset.sampler.kwargs.batch_size=384 \
loss=roadmap_inat
For ROADMAP sota results:
CUDA_VISIBLE_DEVICES=0 python roadmap/single_experiment_runner.py \
'experience.experiment_name=cub_ROADMAP_${dataset.sampler.kwargs.batch_size}_sota' \
experience.seed=333 \
experience.max_iter=200 \
'experience.log_dir=${env:HOME}/experiments/ROADMAP' \
optimizer=cub \
model=resnet_max_ln \
transform=cub_big \
dataset=cub \
dataset.sampler.kwargs.batch_size=128 \
loss=roadmap
CUDA_VISIBLE_DEVICES=0 python roadmap/single_experiment_runner.py \
'experience.experiment_name=cub_ROADMAP_${dataset.sampler.kwargs.batch_size}_sota_DeiT' \
experience.seed=333 \
experience.max_iter=150 \
'experience.log_dir=${env:HOME}/experiments/ROADMAP' \
optimizer=cub_deit \
model=deit \
transform=cub \
dataset=cub \
dataset.sampler.kwargs.batch_size=128 \
loss=roadmap
The results are not exactly the same as my code changed a bit (for instance the random seed are not the same).
If you have any questions don't hesitate to create an issue on this repository. Or send me an email at [email protected].
Don't hesitate to cite our work:
@inproceedings{
ramzi2021robust,
title={Robust and Decomposable Average Precision for Image Retrieval},
author={Elias Ramzi and Nicolas THOME and Cl{\'e}ment Rambour and Nicolas Audebert and Xavier Bitot},
booktitle={Thirty-Fifth Conference on Neural Information Processing Systems},
year={2021},
url={https://openreview.net/forum?id=VjQw3v3FpJx}
}