This code is a PyTorch implementation of our paper "Learning with Instance-Dependent Label Noise: A Sample Sieve Approach" accepted by ICLR2021.
The code is run on the Tesla V-100.
Python 3.6.9
PyTorch 1.2.0
Torchvision 0.5.0
Download the datset from http://www.cs.toronto.edu/~kriz/cifar.html Put the dataset on data/
Install theconf by pip install git+https://github.com/wbaek/theconf.git
Run CORES (Phase 1: Sample Sieve) on CIFAR-10 with instance 0.6 noise:
CUDA_VISIBLE_DEVICES=0 python phase1.py --loss cores --dataset cifar10 --model resnet --noise_type instance --noise_rate 0.6
Run CORES (Phase 2: Consistency Training) on the CIFAR-10 with instance 0.6 noise:
cd phase2
CUDA_VISIBLE_DEVICES=0,1 python phase2.py -c confs/resnet34_ins_0.6.yaml --unsupervised
Both Phase 1 and Phase 2 do not need pre-trained model.
If you find this code useful, please cite the following paper:
@article{cheng2020learning,
title={Learning with Instance-Dependent Label Noise: A Sample Sieve Approach},
author={Cheng, Hao and Zhu, Zhaowei and Li, Xingyu and Gong, Yifei and Sun, Xing and Liu, Yang},
journal={arXiv preprint arXiv:2010.02347},
year={2020}
}
The code of Phase 2 is based on https://github.com/ildoonet/unsupervised-data-augmentation