Skip to content
AugMix: A Simple Data Processing Method to Improve Robustness and Uncertainty
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets Add files via upload Dec 20, 2019
models/cifar Add AugMix code Dec 5, 2019
third_party Add AugMix code Dec 5, 2019
LICENSE Add AugMix code Dec 5, 2019 Update Dec 25, 2019 Add AugMix code Dec 5, 2019 Add AugMix code Dec 5, 2019 Add AugMix code Dec 5, 2019 Update to have alpha=1 Dec 28, 2019
requirements.txt Add AugMix code Dec 5, 2019



We propose AugMix, a data processing technique that mixes augmented images and enforces consistent embeddings of the augmented images, which results in increased robustness and improved uncertainty calibration. AugMix does not require tuning to work correctly, as with random cropping or CutOut, and thus enables plug-and-play data augmentation. AugMix significantly improves robustness and uncertainty measures on challenging image classification benchmarks, closing the gap between previous methods and the best possible performance by more than half in some cases. With AugMix, we obtain state-of-the-art on ImageNet-C, ImageNet-P and in uncertainty estimation when the train and test distribution do not match.

For more details please see our ICLR 2020 paper.



This directory includes a reference implementation in NumPy of the augmentation method used in AugMix in The full AugMix method also adds a Jensen-Shanon Divergence consistency loss to enforce consistent predictions between two different augmentations of the input image and the clean image itself.

We also include PyTorch re-implementations of AugMix on both CIFAR-10/100 and ImageNet in and respectively, which both support training and evaluation on CIFAR-10/100-C and ImageNet-C.


  • numpy>=1.15.0
  • Pillow>=6.1.0
  • torch==1.2.0
  • torchvision==0.2.2


  1. Install PyTorch and other required python libraries with:

    pip install -r requirements.txt
  2. Download CIFAR-10-C and CIFAR-100-C datasets with:

    mkdir -p ./data/cifar
    curl -O
    curl -O
    tar -xvf CIFAR-100-C.tar -C data/cifar/
    tar -xvf CIFAR-10-C.tar -C data/cifar/
  3. Download ImageNet-C with:

    mkdir -p ./data/imagenet/imagenet-c
    curl -O
    curl -O
    curl -O
    curl -O
    tar -xvf blur.tar -C data/imagenet/imagenet-c
    tar -xvf digital.tar -C data/imagenet/imagenet-c
    tar -xvf noise.tar -C data/imagenet/imagenet-c
    tar -xvf weather.tar -C data/imagenet/imagenet-c


Training recipes used in our paper:

WRN: python

AllConv: python -m allconv

ResNeXt: python -m resnext -e 200

DenseNet: python -m densenet -e 200 -wd 0.0001

ResNet-50: python <path/to/imagenet> <path/to/imagenet-c>

Pretrained weights

Weights for a ResNet-50 ImageNet classifier trained with AugMix for 180 epochs are available here.

This model has a 65.3 mean Corruption Error (mCE) and a 77.53% top-1 accuracy on clean ImageNet data.


If you find this useful for your work, please consider citing

  title={{AugMix}: A Simple Data Processing Method to Improve Robustness and Uncertainty},
  author={Hendrycks, Dan and Mu, Norman and Cubuk, Ekin D. and Zoph, Barret and Gilmer, Justin and Lakshminarayanan, Balaji},
  journal={Proceedings of the International Conference on Learning Representations (ICLR)},
You can’t perform that action at this time.