Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/elijahcole/single-positive-multi-label
Multi-Label Learning from Single Positive Labels - CVPR 2021
https://github.com/elijahcole/single-positive-multi-label
computer-vision cvpr cvpr2021 deep-learning missing-labels multi-label-classification multilabel-classification
Last synced: 3 days ago
JSON representation
Multi-Label Learning from Single Positive Labels - CVPR 2021
- Host: GitHub
- URL: https://github.com/elijahcole/single-positive-multi-label
- Owner: elijahcole
- License: mit
- Created: 2021-05-24T00:22:32.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-11-21T01:41:35.000Z (12 months ago)
- Last Synced: 2024-11-05T14:47:00.475Z (5 days ago)
- Topics: computer-vision, cvpr, cvpr2021, deep-learning, missing-labels, multi-label-classification, multilabel-classification
- Language: Python
- Homepage: https://arxiv.org/abs/2106.09708
- Size: 25.8 MB
- Stars: 90
- Watchers: 8
- Forks: 18
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Multi-Label Learning from Single Positive Labels
Code to reproduce the main results in the paper [Multi-Label Learning from Single Positive Labels](https://arxiv.org/abs/2106.09708) (CVPR 2021).
## Getting Started
See the `README.md` file in the `data` directory for instructions on downloading and setting up the datasets.
## Training a Model
To train and evaluate a model, run:
```
python train.py
```## Selecting the Training Procedure
To generate different entries of the main table, modify the following parameters:
1. `dataset`: Which dataset to use.
1. `loss`: Which loss to use.
1. `train_mode`: Whether to (a) train a linear classifier on top of pre-extracted features, (b) train end-to-end, or (c) do (a) followed by (b).
1. `val_set_variant`: Whether to use a clean val set or a validation set where a single positive is observed for each image.## Hyperparameter Search
As written, `train.py` will run a hyperparameter search over a few different learning rates and batch sizes, save the results for all runs, and report the best run. If desired, modify the code at the bottom of `train.py` to search over different parameter settings.**The `linear_init` mode searches over hyperparameters for the fine-tuning phase only.** The hyperparameters for the linear training phase are fixed. In particular, `linear_init_lr` and `linear_init_bsize` are set to the best learning rate and batch size from a `linear_fixed_features` hyperparameter search.
## Misc
* The `requirements.txt` files was generated using the wonderful tool [pipreqs](https://github.com/bndr/pipreqs).
* Please feel free to get in touch / open an issue if anything is unclear.
* In this paper we used only those images from NUSWIDE which were still publicly available when we re-crawled the dataset in 2020 using Namhyuk Ahn's [downloader](https://github.com/nmhkahn/NUS-WIDE-downloader). Following the instructions in `data/README.md` should yield the exact subset used for our experiments.## Reference
If you find our work useful in your research please consider citing our paper:```latex
@inproceedings{cole2021multi,
title={Multi-Label Learning from Single Positive Labels},
author={Cole, Elijah and
Mac Aodha, Oisin and
Lorieul, Titouan and
Perona, Pietro and
Morris, Dan and
Jojic, Nebojsa},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
year={2021}
}
```