一個簡潔的交互式工具,演示在不同模型(MNIST: LeNet;CIFAR-10: ResNet18)上使用 FGSM/PGD 生成對抗樣本,並對比乾淨/對抗預測、可視化擾動熱力圖。
- 啟動:
- 默認端口:
python -m streamlit run web/streamlit_app.py - 指定端口:
python -m streamlit run web/streamlit_app.py --server.port 8508
- 默認端口:
打開瀏覽器訪問顯示的 Local URL(例如 http://localhost:8508/)。
- 模型選擇:
LeNet(MNIST,灰度 28×28)/ResNet18(CIFAR-10,RGB 32×32) - 攻擊方法:
FGSM/PGD,支持eps強度與步數設定 - 圖片上傳:自動轉換到模型輸入規格;縮放插值為
LANCZOS eps單位切換:在 UI 中可選0~1或/255,生成時自動換算- 擾動熱力圖:顯示每像素擾動幅度(
|x_adv - x|)的可視化;可選灰度/偽彩色 - 結果對比:展示乾淨/對抗預測及下載圖片
- 若上傳圖片不屬於本工具提供的標準數據集,無需關注預測數字的語義;對於非定向攻擊,只需關注「乾淨預測」與「對抗預測」是否一致(一致→未成功,不一致→成功);定向攻擊以是否變為指定目標類為準。
- 熱力圖反映擾動幅度,不會改動原圖;目前以獨立圖呈現。