Home

Awesome

Pseudo-Label Selection for label noise (PLS)

Official repository for Is your noise correction noisy? PLS: Robustness to label noise with two stage detection WACV 2023 paper

PLS

Dependencies

conda env create -f env.yml
conda activate pls

pytorch=1.7.1, torchvision=8.2, cuda=10.2, python=3.8

Dataset setup

Set the path to your datasets in the mypath.py file Download the web fine-grained from here

How to use

Run PLS on CIFAR-100 with 40% of ID noise

python main.py --dataset cifar100 --epochs 200 --batch-size 256 --net preresnet18 --lr 0.1 --exp-name cifar100_40idnoise --ood-noise 0.0 --id-noise 0.4 --mixup --warmup 30 --cont

The various train*.sh files list multiple example commands to run PLS on CIFAR-100, miniImageNet corrupted with web noise and the web fine-grained datasets.

Train on a custom dataset

Edit the datasets/custom.py (dataset creation), the utils.py (mean, std and image size) and the mypath.py (dataset path) files to fit your custom dataset and specify the --dataset custom command when running the code.

Some results from the paper

Controlled Noisy Web Labels (CNWL) dataset

r_out0.20.40.60.8
top-1 acc63.1060.0254.4146.51
std 3 runs0.140.150.490.20

CIFAR-100 ID noise

r_in0.00.20.50.8
top-1 acc78.8580.0376.4863.33
std 3 runs0.210.150.250.38

CIFAR-100 ID and OOD noise (ImageNet32)

r_in0.20.20.20.4
r_out0.20.40.60.4
top-1 acc76.2972.0657.7856.92
std 3 runs0.280.190.260.49

Web-fg datasets

datasetweb-aircraftweb-birdweb-car
top-1 acc87.5879.0086.27

Cite our paper if it helps your research

@inproceedings{2023_WACV_PLS,
  title="{Is your noise correction noisy? PLS: Robustness to label noise with two stage detection}",
  author="Albert, Paul and Arazo, Eric and Kirshna, Tarun and O'Connor, Noel E and McGuinness, Kevin",
  booktitle="{Winter Conference on Applications of Computer Vision (WACV)}",
  year={2023}
}