Robust Overfitting Checkpoints: PreActResNet-18 on CIFAR-10
This repository contains 40 PyTorch checkpoints from a 200-epoch adversarial-training run of PreActResNet-18 on CIFAR-10. The run reproduces the robust-overfitting behavior reported by Rice, Wong, and Kolter (2020).
The checkpoints are intended for research, reproduction, and analysis of how clean and adversarial robustness change throughout training.
Model details
- Architecture: PreActResNet-18
- Task: CIFAR-10 image classification
- Classes: 10
- Training method: Pixel-space PGD-10 adversarial training
- Training duration: 200 epochs
- Checkpoints: Every 5 epochs (
epoch_5.ptthroughepoch_200.pt) - Perturbation budget: (L_\infty) epsilon = 8/255
- PGD step size: 2/255
- Random seed: 42
The model architecture and full training code are available in the companion GitHub repository:
https://github.com/ItsKaiwenDu/Robust-Overfitting
Results
Each checkpoint was evaluated on the full CIFAR-10 test set using 20-step pixel-space PGD with epsilon = 8/255 and step size = 2/255.
| Checkpoint | Clean accuracy | PGD-20 robust accuracy |
|---|---|---|
| Epoch 105 (best robustness) | 81.94% | 45.91% |
| Epoch 200 (final checkpoint) | 82.22% | 36.18% |
Robust accuracy peaks at epoch 105 and then declines by 9.73 percentage points by epoch 200, while clean accuracy remains high. This is the robust-overfitting pattern studied in the project.
Which checkpoint should I use?
- Use
epoch_105.ptfor the checkpoint with the highest measured PGD-20 robust accuracy. - Use
epoch_200.ptto inspect the final model after robust overfitting has occurred. - Use the full checkpoint sequence to reproduce the clean- and robust-accuracy curves across training.
Loading a checkpoint
Clone the companion code repository first, since it contains the PreActResNet-18 definition:
git clone https://github.com/ItsKaiwenDu/Robust-Overfitting.git
cd Robust-Overfitting
pip install -r requirements.txt
Then download and load a checkpoint:
import torch
from huggingface_hub import hf_hub_download
from models.preact_resnet import PreActResNet18
checkpoint_path = hf_hub_download(
repo_id="KaiwenDu/robust-overfitting-checkpoints",
filename="epoch_105.pt",
)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = PreActResNet18(num_classes=10).to(device)
checkpoint = torch.load(checkpoint_path, map_location=device)
model.load_state_dict(checkpoint["model_state_dict"])
model.eval()
Inputs should be CIFAR-10 RGB images converted to tensors in [0, 1] and normalized with:
mean = (0.4914, 0.4822, 0.4465)
std = (0.2471, 0.2435, 0.2616)
Limitations
These checkpoints are a single-seed reproduction study, not a claim of state-of-the-art adversarial robustness. Robustness was measured against the specified pixel-space PGD-20 attack; it should not be interpreted as robustness against every possible attack. The low-frequency and mixed-domain experiments described in the companion repository are separate, ongoing work and are not represented by these checkpoints.
Citation
If you use these checkpoints, please cite the companion repository and the original robust-overfitting paper:
@article{rice2020overfitting,
title={Overfitting in Adversarially Robust Deep Learning},
author={Rice, Leslie and Wong, Eric and Kolter, J. Zico},
journal={Proceedings of the 37th International Conference on Machine Learning},
year={2020}
}
License
The companion code is released under the MIT License. CIFAR-10 is subject to its own dataset terms and license.