ist eine Python -Toolbox für die kontroverse Robustheitsforschung. Die primären Funktionen werden in Pytorch implementiert. Insbesondere enthält Advertorch Module zur Generierung von kontroversen Störungen und zur Verteidigung gegen kontroverse Beispiele, auch Skripte für das kontroverse Training.
Wir haben Werbetourch unter Python 3.6 und Pytorch 1.0.0 & 0.4.1 entwickelt. Um Werbung zu installieren, laufen Sie einfach aus
pip install advertorch
oder klonen Sie das Repo und rennen Sie
python setup.py install
So installieren Sie das Paket im "bearbeitbaren" Modus:
pip install -e .
Einige Angriffe werden gegen Implementierungen in Foolbox oder Cleverhans getestet, um die Korrektheit zu gewährleisten. Derzeit werden sie unter den folgenden Versionen verwandter Bibliotheken getestet.
conda install -c anaconda tensorflow-gpu==1.11.0
pip install git+https://github.com/tensorflow/cleverhans.git@336b9f4ed95dccc7f0d12d338c2038c53786ab70
pip install Keras==2.2.2
pip install foolbox==1.3.2
# prepare your pytorch model as "model"
# prepare a batch of data and label as "cln_data" and "true_label"
# ...
from advertorch . attacks import LinfPGDAttack
adversary = LinfPGDAttack (
model , loss_fn = nn . CrossEntropyLoss ( reduction = "sum" ), eps = 0.3 ,
nb_iter = 40 , eps_iter = 0.01 , rand_init = True , clip_min = 0.0 , clip_max = 1.0 ,
targeted = False )
adv_untargeted = adversary . perturb ( cln_data , true_label )
target = torch . ones_like ( true_label ) * 3
adversary . targeted = True
adv_targeted = adversary . perturb ( cln_data , target ) Beispiele für runnable Beispiele finden Sie advertorch_examples/tutorial_attack_defense_bpda_mnist.ipynb für Angriffe und Verteidigung; Siehe advertorch_examples/tutorial_train_mnist.py um ein robustes Modell auf MNIST zu trainieren.
Die Dokumentationswebseite befindet sich auf der Redethedocs https://advertorch.readthedocs.io.
Advertorch steht noch in aktiver Entwicklung. Wir werden die folgenden Funktionen/Gegenstände in der Straße hinzufügen:
FastFeatureAttack und JacobianSaliencyMapAttack bestehen die Tests nicht gegen die Version der verwendeten Cleverhans. (Sie verwenden Tests an einer früheren Version von Cleverhans.) Dieses Problem wird untersucht. In der Datei test_attacks_on_cleverhans.py werden sie in pytest -Tests als "übersprungen" gekennzeichnet.
Dieses Projekt ist unter der LGPL lizenziert. Die Allgemeinen Geschäftsbedingungen finden Sie in den Dateien Lizenz und Lizenz.
Wenn Sie Advertorch in Ihrer Forschung verwenden, bitten wir Ihnen freundlich, den folgenden technischen Bericht zuzitieren:
@article{ding2019advertorch,
title={{AdverTorch} v0.1: An Adversarial Robustness Toolbox based on PyTorch},
author={Ding, Gavin Weiguang and Wang, Luyu and Jin, Xiaomeng},
journal={arXiv preprint arXiv:1902.07623},
year={2019}
}