NeurIPS'19: Meta-Weight-Net: Learning an Explicit Mapping For Sample Weighting (Pytorch implementation for noisy labels).

Overview

Meta-Weight-Net

NeurIPS'19: Meta-Weight-Net: Learning an Explicit Mapping For Sample Weighting (Official Pytorch implementation for noisy labels). The implementation of class imbalance is available at https://github.com/xjtushujun/Meta-weight-net_class-imbalance.

================================================================================================================================================================

This is the code for the paper: Meta-Weight-Net: Learning an Explicit Mapping For Sample Weighting
Jun Shu, Qi Xie, Lixuan Yi, Qian Zhao, Sanping Zhou, Zongben Xu, Deyu Meng* To be presented at NeurIPS 2019.

If you find this code useful in your research then please cite

@inproceedings{han2018coteaching,
  title={Meta-Weight-Net: Learning an Explicit Mapping For Sample Weighting},
  author={Shu, Jun and Xie, Qi and Yi, Lixuan and Zhao, Qian and Zhou, Sanping and Xu, Zongben and Meng, Deyu},
  booktitle={NeurIPS},
  year={2019}
}

Setups

The requiring environment is as bellow:

  • Linux
  • Python 3+
  • PyTorch 0.4.0
  • Torchvision 0.2.0

Running Meta-Weight-Net on benchmark datasets (CIFAR-10 and CIFAR-100).

Here is an example:

python train_WRN-28-10_Meta_PGC.py --dataset cifar10 --corruption_type unif(flip2) --corruption_prob 0.6

The default network structure is WRN-28-10, if you want to train with ResNet32 model, please reset the learning rate delay policy.

A stable version is relased.

python MW-Net.py --dataset cifar10 --corruption_type unif(flip2) --corruption_prob 0.6

Important Updating Version

The new code on github (https://github.com/ShiYunyi/Meta-Weight-Net_Code-Optimization) has implemented the MW-Net based on the newest pytorch and torchvision version. It rewrites an optimizer to assign non leaf node tensors to model parameters. Thus it does not need to rewrite the nn.Module as this version does. Very thanks for Shi Yunyi ([email protected])!

Acknowledgements

We thank the Pytorch implementation on glc(https://github.com/mmazeika/glc) and learning-to-reweight-examples(https://github.com/danieltan07/learning-to-reweight-examples).

Contact: Jun Shu ([email protected]); Deyu Meng([email protected]).

You might also like...
Implements a polyglot REPL which supports multiple languages and shared meta-object protocol scope between REPLs.
Implements a polyglot REPL which supports multiple languages and shared meta-object protocol scope between REPLs.

MetaCall Polyglot REPL Description This repository implements a Polyglot REPL which shares the state of the meta-object protocol between the REPLs. Us

Python library and cli util for https://www.zerochan.net/

Zerochan Library for Zerochan.net with pics parsing and downloader included! Features CLI utility for pics downloading from zerochan.net Library for c

Cross-platform .NET Core pre-commit hooks

dotnet-core-pre-commit Cross-platform .NET Core pre-commit hooks How to use Add this to your .pre-commit-config.yaml - repo: https://github.com/juan

Заглушки .NET библиотек для IronPython

Код репозитория основан на ironpython-stubs. Выражаю gtalarico бесконечную благодарность за вклад в развитие сообщества разработчиков скриптов и плаги

A Python package to request and process seismic waveform data from Hi-net.

HinetPy is a Python package to simplify tedious data request, download and format conversion tasks related to NIED Hi-net. NIED Hi-net | Source Code |

Implementation of the Angular Spectrum method in Python to simulate Diffraction Patterns
Implementation of the Angular Spectrum method in Python to simulate Diffraction Patterns

Diffraction Simulations - Angular Spectrum Method Implementation of the Angular Spectrum method in Python to simulate Diffraction Patterns with arbitr

Minimalist BERT implementation assignment for CS11-747

minbert Assignment by Zhengbao Jiang, Shuyan Zhou, and Ritam Dutt This is an exercise in developing a minimalist version of BERT, part of Carnegie Mel

Python implementation of the ASFLIP advection method
Python implementation of the ASFLIP advection method

This is a python implementation of the ASFLIP advection method . We would like to hear from you if you appreciate this work.

A Gura parser implementation for Python

Gura parser This repository contains the implementation of a Gura format parser in Python. Installation pip install gura-parser Usage import gura gur

Comments
  • The accuracy of BaseModel is 88.5 when the noise rate is 0.4?

    The accuracy of BaseModel is 88.5 when the noise rate is 0.4?

    I trained a WRN-28-10 network on cifar-10 with noise rate of 0.4 under uniform noise following the setting in the paper for a total of 40 epochs, but the accuracy of BaseModel is 88.5, which is really high compared with the results in Table 2. I don't know what the problem is.

    opened by lzm10214066 4
  • About the effectiveness

    About the effectiveness

    Thank you for your excellent work!

    Here, we raised some questions about the effectiveness (time & memory) of Meta-Weight-Net:

    Compared to Learn-to-Reweight (Ren, 2017), how about the cost of running time and GPU memory per training step?

    Can the training process's time efficiency be improved by updating Meta-Weight-Net every several steps (rather than updating every step)? Will this affect model's performance?

    Is it possible to achieve multi-GPU parallelism (based on Pytorch)?

    Thanks very much~

    opened by SunSiShining 2
  • tabular data/ noisy instances

    tabular data/ noisy instances

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

    1. Does it also work on tabular data?
    2. Is it possible to identify the noisy instances (return the noisy IDs or the clean set)?

    Thanks!

    opened by nazaretl 0
  • About the details of learning rate

    About the details of learning rate

    There is a sentence in the appendix: "With batch normalization, we effectively cancel the learning rate of Meta-Weight-Net, and it works well with a fixed learning rate. "

    I'm not sure what it is about. Would you please give an explanation in detail? Does it mean we don't need to fine-tune the learning rate of meta networks because of BN?

    opened by hongxin001 1
Owner
null
The bidirectional mapping library for Python.

bidict The bidirectional mapping library for Python. Status bidict: has been used for many years by several teams at Google, Venmo, CERN, Bank of Amer

Joshua Bronson 1.2k Dec 31, 2022
skimpy is a light weight tool that provides summary statistics about variables in data frames within the console.

skimpy Welcome Welcome to skimpy! skimpy is a light weight tool that provides summary statistics about variables in data frames within the console. Th

null 267 Dec 29, 2022
Homed - Light-weight, easily configurable, dockerized homepage

homed GitHub Repo Docker Hub homed is a light-weight customizable portal primari

Matt Walters 12 Dec 15, 2022
Cloud Native sample microservices showcasing Full Stack Observability using AppDynamics and ThousandEyes

Cloud Native Sample Bookinfo App Observability Bookinfo is a sample application composed of four Microservices written in different languages.

Cisco DevNet 13 Jul 21, 2022
Sample microservices application demo

Development mode docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d or export COMPOSE_FILE='docker-compose.yml:docker-compose.dev.ym

Konstantinos Bairaktaris 1 Nov 14, 2021
Korg Volca Sample uploader for linux.

GnuVolca Korg Volca Sample uploader for linux. GnuVolca Usage Installation Via virtualenv Usage Store all the samples you want to upload on an empty d

Gonzalo Rafuls 12 Oct 11, 2022
This is a far more in-depth and advanced version of "Write user interface to a file API Sample"

Fusion360-Write-UserInterface This is a far more in-depth and advanced version of "Write user interface to a file API Sample" from https://help.autode

null 4 Mar 18, 2022
Sample python script for monitoring Rocketchat database and get statistics of users.

rocketchat-DB-monitoring Sample python script for monitoring Rocketchat database and get statistics of users. 1. Update python: yum check-update && yu

Mojtaba Taleghani 1 Apr 12, 2022
This is sample project needed for security course to connect web service to database

secufaku This is sample project needed for security course to "connect web service to database". Why it suits alignment purpose It connects to postgre

Mark Nicholson 6 May 15, 2022
Python meta class and abstract method library with restrictions.

abcmeta Python meta class and abstract method library with restrictions. This library provides a restricted way to validate abstract methods. The Pyth

Morteza NourelahiAlamdari 8 Dec 14, 2022