/RobOT

Code release for RobOT (ICSE'21)

Primary LanguagePythonMIT LicenseMIT

RobOT: Robustness-Oriented Testing for Deep Learning Systems published at ICSE 2021

See the ICSE2021 paper for more details.

Prerequisite (Py3.6 & Tf2)

The code are run successfully using Python 3.6 and Tensorflow 2.2.0.

We recommend using conda to install the tensorflow-gpu environment

conda create -n tf2-gpu tensorflow-gpu==2.2.0
conda activate tf2-gpu

Checking installed environments

conda env list

to run the code in jupyter, you should add the kernel in jupyter notebook

pip install ipykernel
python -m ipykernel install --name tf2-gpu

then start jupyter notebook for experiments

jupyter notebook

Files

  • MNIST - robustness experiments on the MNIST dataset.
  • FASHION - robustness experimnets on the FASHION dataset.
  • SVHN - robustness experiments on the SVHN dataset.
  • CIFAR-10 - robustness experiments on the CIFAR-10 dataset.

Functions

metrics.py contains proposed metrics FOL.

train_model.py is to train the DNN model.

attack.py contains FGSM and PGD attack.

gen_adv.py is to generate adversarial inputs for test selection and robustness evaluation. You could also use toolbox like cleverhans for the test case generation.

select_retrain.py is to select valuable test cases for model retraining.

For testing methods (DeepXplore, DLFuzz, ADAPT), we use the code repository ADAPT.

For testing methods (AEQUITAS, ADF), we use the code repository ADF.

Coming soon

More details would be included soon.