Code for our ICML'19 paper: Interpreting Adversarially Trained Convolutional Neural Networks, by Tianyuan Zhang, Zhanxing Zhu.
How to run
If you want to run code on your own, I only provide codes on Caltech-256. We do not upload the dataset and trainned networks due to the fact that they are storage consuming. Training(Adversarial Training) scripts in this repo is not well writen, I suugest you to use your own scripts, or scripts provided in this repo
Caltech-256
The four most important python files for Caltech-256
They are all in /code/baseline/ :
main.py, attack.py, utils.py dataset.py
main.pytrains CNNs. It contains sufficient comments to understand how to customize your trainings.attack.pyimplements PGD and FGSM attackers.utils.pyimplements SmoothGraddataset.pyimplements Saturation and Patch-shuffle operation. For style transfer, you have to use code provided in https://github.com/rgeirhos/Stylized-ImageNet/tree/master/codestAdv.pyin code/spatial-transform.adv.train/ implements Spatially transformed attack.
How to run
- Dowload the data from http://www.vision.caltech.edu/Image_Datasets/Caltech101/Caltech101.html to
/code/Caltech256/data -
cd dataand runPartition.pyto generate training set and test set. -
cd code/baselineand runmain.pyto train standard CNNs -
cd code/pgd.inf.eps8and runmain.pyto adversarially train CNNs against a