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