Skip to content
Code for our paper: You Only Propagate Once: Accelerating Adversarial Training Via Maximal Principle
Python
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
experiments Update training_function.py Jul 25, 2019
images add trades-yopo May 23, 2019
lib add pipeline jpg Jul 7, 2019
.gitignore change mnist config & gitignore May 3, 2019
README.md Update README.md Jun 10, 2019
requirements.txt Create requirements.txt May 2, 2019

README.md

YOPO (You Only Propagate Once: Accelerating Adversarial Training via Maximal Principle)

Code for our paper: "You Only Propagate Once: Accelerating Adversarial Training via Maximal Principle" by Dinghuai Zhang, Tianyuan Zhang, Yiping Lu, Zhanxing Zhu, Bin Dong.

The Pipeline of YOPO

Prerequisites

  • Pytorch==1.0.1, torchvision
  • Python 3.5
  • tensorboardX
  • easydict
  • tqdm

Intall

git clone https://github.com/a1600012888/YOPO-You-Only-Propagate-Once.git
cd YOPO-You-Only-Propagate-Once
pip3 install -r requirements.txt --user

How to run our code

Natural training and PGD training

  • normal training: experiments/CIFAR10/wide34.natural
  • PGD adversarial training: experiments/CIFAR10/wide34.pgd10 run python train.py -d <whcih_gpu>

You can change all the hyper-parameters in config.py. And change network in network.py Actually code in above mentioned director is very flexible and can be easiliy modified. It can be used as a template.

YOPO training

Go to directory experiments/CIFAR10/wide34.yopo-5-3 run python train.py -d <whcih_gpu>

You can change all the hyper-parameters in config.py. And change network in network.py Runing this code for the first time will dowload the dataset in ./experiments/CIFAR10/data/, you can modify the path in dataset.py

Miscellaneous

The mainbody of experiments/CIFAR10-TRADES/baseline.res-pre18.TRADES.10step is written according to TRADES official repo.

A tensorflow implementation provided by Runtian Zhai is provided here. The implemetation of the "For Free" paper is also included. It turns out that our YOPO is faster than "For Free" (detailed results will come soon). Thanks for Runtian's help!

Cite

@article{zhang2019you,
  title={You Only Propagate Once: Accelerating Adversarial Training via Maximal Principle},
  author={Zhang, Dinghuai and Zhang, Tianyuan and Lu, Yiping and Zhu, Zhanxing and Dong, Bin},
  journal={arXiv preprint arXiv:1905.00877},
  year={2019}
}
You can’t perform that action at this time.