LC-Booster
LC-Booster copied to clipboard
Reliable Label Correction is a Good Booster When Learning with Extremely Noisy Labels
This is the official implementation of LC-Booster.
Environment
- Install
pytorch>=1.7.0
andtorchvision
. -
pip install -r requirements.txt
Datasets
Please download and organize the datasets in this structure:
LC-Booster
├── data/
├── cifar-10-batches-py/
├── cifar-100-python/
Train
# CIFAR-10; 2 GPUs by default
python train_ww_ws.py configs/cifar10/sym80_ww_ws.py
python train_ww_ws.py configs/cifar10/sym90_ww_ws.py
# CIFAR-100; 2 GPUs by default
python train_wwss.py configs/cifar100/sym80_wwss.py
python train_wwss.py configs/cifar100/sym90_wwss.py
Results
We provide results and logs produced by this code.
CIFAR-10
Method | Metric | Noisy Type\Ratio | |
---|---|---|---|
sym80 | sym90 | ||
SOTA | Best | 93.8 | 91.9 |
Last 5 | 93.6 | 91.8 | |
LC-Booster | Best | 94.9 | 93.2 |
Last 5 | 94.7 | 92.9 |
CIFAR-100
Method | Metric | Noisy Type\Ratio | |
---|---|---|---|
sym80 | sym90 | ||
SOTA | Best | 66.4 | 41.2 |
Last 5 | 66.1 | 40.9 | |
LC-Booster | Best | 67.9 | 50.9 |
Last 5 | 67.5 | 50.7 |
We do observe some variance on results of high noise ratio (e.g., CIFAR-10 sym90), as in the implementation of other noisy-label methods (e.g., AugDesc). We find the variance is mainly reflected on the first 100 epochs. So you can run several first 100 epochs with different seeds and resume from the best one to avoid full training many times.
More configs and code coming soon.