adalah kotak alat Python untuk penelitian ketahanan permusuhan. Fungsi utama diimplementasikan dalam Pytorch. Secara khusus, Advertorch berisi modul untuk menghasilkan gangguan permusuhan dan mempertahankan contoh -contoh permusuhan, juga skrip untuk pelatihan permusuhan.
Kami mengembangkan pengkhianat di bawah Python 3.6 dan Pytorch 1.0.0 & 0.4.1. Untuk menginstal Addlanch, cukup jalankan
pip install advertorch
atau mengkloning repo dan lari
python setup.py install
Untuk menginstal paket dalam mode "Edited":
pip install -e .
Beberapa serangan diuji terhadap implementasi di Foolbox atau Cleverhans untuk memastikan kebenaran. Saat ini, mereka diuji di bawah versi perpustakaan terkait berikut.
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 ) Untuk contoh runnable, lihat advertorch_examples/tutorial_attack_defense_bpda_mnist.ipynb untuk cara menyerang dan mempertahankan; Lihat advertorch_examples/tutorial_train_mnist.py untuk cara melatih model yang kuat di MNIST.
Halaman web dokumentasi ada di ReadThedocs https://adpertorch.readthedocs.io.
Addlanch masih dalam pengembangan aktif. Kami akan menambahkan fitur/item berikut di ujung jalan:
FastFeatureAttack dan JacobianSaliencyMapAttack tidak lulus tes terhadap versi Cleverhans yang digunakan. (Mereka digunakan untuk lulus tes pada versi Cleverhans sebelumnya.) Masalah ini sedang diselidiki. Dalam file test_attacks_on_cleverhans.py , mereka ditandai sebagai "dilewati" dalam tes pytest .
Proyek ini dilisensikan di bawah LGPL. Syarat dan ketentuan dapat ditemukan dalam file lisensi dan lisensi.gpl.
Jika Anda menggunakan Addlantorch dalam penelitian Anda, kami dengan baik meminta Anda mengutip laporan teknis berikut:
@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}
}