Giter Site home page Giter Site logo

nlnl-negative-learning-for-noisy-labels's Introduction

NLNL-Negative-Learning-for-Noisy-Labels

Pytorch implementation for paper NLNL: Negative Learning for Noisy Labels, ICCV 2019

Paper: https://arxiv.org/abs/1908.07387

Requirements

  • python3
  • pytorch
  • matplotlib

Generating noisy data

python3 noise_generator.py --noise_type val_split_symm_exc

Start training

Simply run sh file: run.sh

GPU=0 setting='--dataset cifar10_wo_val --model resnet34 --noise 0.2 --noise_type val_split_symm_exc'
CUDA_VISIBLE_DEVICES=$GPU python3 main_NL.py $setting
CUDA_VISIBLE_DEVICES=$GPU python3 main_PL.py $setting --max_epochs 720
CUDA_VISIBLE_DEVICES=$GPU python3 main_pseudo1.py $setting --lr 0.1 --max_epochs 480 --epoch_step 192 288
CUDA_VISIBLE_DEVICES=$GPU python3 main_pseudo2.py $setting --lr 0.1 --max_epochs 480 --epoch_step 192 288

Citation

@inproceedings{kim2019nlnl,
  title={Nlnl: Negative learning for noisy labels},
  author={Kim, Youngdong and Yim, Junho and Yun, Juseung and Kim, Junmo},
  booktitle={Proceedings of the IEEE International Conference on Computer Vision},
  pages={101--110},
  year={2019}
}

nlnl-negative-learning-for-noisy-labels's People

Contributors

ydkim1293 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

nlnl-negative-learning-for-noisy-labels's Issues

tabular data/new datasets

Hi,
thanks for sharing your implementation. I have two questions about it:

  1. Does it also work on tabular data?
  2. Is the code tailored to the datasets used in the paper or can one apply it to any data?

Thanks!

The loss function doesn't match the one mentioned in Sec 3 of paper ?

Hello ,I'm very interested in your work and trying to reproduce your results.
Q1:
I found the loss function in (line 200,main_NL.py)
( (loss+loss_neg) / (float((labels>=0).sum())+float((labels_neg[:,0]>=0).sum())) ).backward()
It seems that it dosen't match (Eq.2) or any loss function mentioned in (Section 3)?

Q2:
'main_NL.py','main_PL.py','main_pseudo1.py','main_pseudo2.py' are very similar to each other. Could you summarize the differeces and provide more comments or instructions of the code ?

Thanks a lot!

question on running error

Hello,
I followed the instructions but received error says

FileNotFoundError: [Errno 2] No such file or directory: 'logs/cifar10_wo_val_resnet34_val_split_symm_exc_20/checkpoint_epoch1439.pth.tar'

is there anywhere I should go to download the file?

Thank you so much for your time!

1

Hello. In your paper, you mentioned using negtive labels that are diffent from the true labels to train the network, but how can we get these true labels under the unsupervised situation?

How to select the samples after NL?

After NL, the next step is SelNL, but i have problems with "py > 1/c". According to my understanding, the ideal condition is that the
network will output a low probability corresponding to a complementary label after NL. If we select the samples with output probability over 1/c, did we select the data that can not be effectively splitted after NL? So what exactly the 'py' means? Or what the confidence 'py' represents?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.