9.7.1 robust-ml简介
robust-ml是一个轻量级的攻防对抗环境,可以很方便地在imagenet 2012这样的大型数据集上验证白盒攻击或者防御算法的有效性。
https://github.com/robust-ml/robustml
如果要实现防御算法,需要实现robustml.model.model类,如果需要实现攻击算法,需要实现robustml.attack.attack类,衡量攻防效果需要使用robustml.evaluate.evaluate函数。
robust-ml的安装方式方法非常简单,直接使用pip工具即可。
pip install robustml
通常robust-ml都在imagenet 2012数据集上进行验证,因此需要提前下载。本书提供了简易的下载脚本。
https://github.com/duoergun0729/adversarial_examples/blob/master/code/download-imagenet2012val.sh
执行该脚本后,将在data目录创建test_data目录,其中包含imagenet 2012的val数据:
imagenet-classes.txt val val.txt
图片数据位于val目录,imagenet-classes.txt为分类标签对应的物体名称,val.txt包含图片文件名和对应的分类标签。
ilsvrc2012_val_00000004.jpeg 809
ilsvrc2012_val_00000005.jpeg 516
ilsvrc2012_val_00000006.jpeg 57
ilsvrc2012_val_00000007.jpeg 334
ilsvrc2012_val_00000008.jpeg 415
ilsvrc2012_val_00000009.jpeg 674
ilsvrc2012_val_00000010.jpeg 332