首先需要生成攻击用的模型,advbox的测试模型是一个识别MNIST的cnn模型。
python mnist_model.py
运行攻击代码,以基于FGSM算法的演示代码为例。
python mnist_tutorial_fgsm.py
运行攻击脚本,对MNIST数据集进行攻击,测试样本数量为500,其中攻击成功394个,占78.8%。
attack success, original_label=4, adversarial_label=9, count=498
attack success, original_label=8, adversarial_label=3, count=499
attack success, original_label=6, adversarial_label=1, count=500
[TEST_DATASET]: fooling_count=394, total_count=500, fooling_rate=0.788000
fgsm attack done
完整的攻击算法和代码对应关系如下:
攻击算法 | 代码文件 |
---|---|
lbfgs | mnist_tutorial_lbfgs.py |
fgsm | mnist_tutorial_fgsm.py |
bim | mnist_tutorial_bim.py |
ilcm | mnist_tutorial_ilcm.py |
mifgsm | mnist_tutorial_mifgsm.py |
jsma | mnist_tutorial_jsma.py |
deepfool | mnist_tutorial_deepfool.py |
首先需要生成攻击用的模型,advbox的测试模型是一个识别CIFAR10的ResNet模型。
python cifar10_model.py
运行攻击代码,以基于FGSM算法的演示代码为例。
python cifar10_tutorial_fgsm.py
完整的攻击算法和代码对应关系如下:
攻击算法 | 代码文件 |
---|---|
bim | cifar10_tutorial_bim.py |
fgsm | cifar10_tutorial_fgsm.py |
deepfool | cifar10_tutorial_deepfool.py |
jsma | cifar10_tutorial_ jsma.py |