9.7.1 robust-ml简介
9.7.1robust-ml简介
robust-ml是一个轻量级的攻防对抗环境,可以很方便地在ImageNet2012这样的大型数据集上验证白盒攻击或者防御算法的有效性。
https://github.com/robust-ml/robustml
如果要实现防御算法,需要实现robustml.model.Model类,如果需要实现攻击算法,需要实现robustml.attack.Attack类,衡量攻防效果需要使用robustml.evaluate.evaluate函数。
robust-ml的安装方式方法非常简单,直接使用pip工具即可。
pipinstallrobustml
通常robust-ml都在ImageNet2012数据集上进行验证,因此需要提前下载。本书提供了简易的下载脚本。
https://github.com/duoergun0729/adversarial_examples/blob/master/code/download-imagenet2012val.sh
执行该脚本后,将在data目录创建test_data目录,其中包含ImageNet2012的val数据:
imagenet-classes.txtvalval.txt
图片数据位于val目录,imagenet-classes.txt为分类标签对应的物体名称,val.txt包含图片文件名和对应的分类标签。
ILSVRC2012_val_00000004.JPEG809
ILSVRC2012_val_00000005.JPEG516
ILSVRC2012_val_00000006.JPEG57
ILSVRC2012_val_00000007.JPEG334
ILSVRC2012_val_00000008.JPEG415
ILSVRC2012_val_00000009.JPEG674
ILSVRC2012_val_00000010.JPEG332