This is the official implementation of LC-Booster.
- Install
pytorch>=1.7.0
andtorchvision
. pip install -r requirements.txt
Please download and organize the datasets in this structure:
LC-Booster
├── data/
├── cifar-10-batches-py/
├── cifar-100-python/
# cifar10, symmetric noise 90%
python create_noisy_labels.py --ds cifar10 --type sym --ratio 0.9 --seed 42
# cifar100, symmetric noise 90%
python create_noisy_labels.py --ds cifar100 --type sym --ratio 0.9 --seed 42
# cifar10, asymmetric noise 40%
python create_noisy_labels.py --ds cifar10 --type asym --ratio 0.4 --seed 42
# 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
We provide results and logs produced by this code.
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 |
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.