项目简介
本项目是基于PaddlePaddle框架开发的图像分类模型对抗测试工具。项目实现了多种深度学习模型,运用多种攻击策略与数据处理方法,通过对比原始图像和攻击后图像的指标,评估图像分类模型对攻击的鲁棒性。此项目在百度AI安全对抗赛初赛获第一名,决赛获第五名。
项目的主要特性和功能
- 模型库:实现ResNet、MobileNetV2、DarkNet等多种深度学习模型,并提供不同版本。
- 攻击策略:采用添加噪声、改变像素值、改变图像大小等策略测试模型鲁棒性。
- 数据处理:提供图像预处理、数据增强、批量归一化等操作,调整图像格式并增强数据多样性。
- 评估指标:计算原始图像和攻击后图像的指标(如MSE、L2范数等)评估模型抗攻击能力。
- 日志记录:运行过程中记录攻击结果、模型性能等日志,便于后续分析和改进。
安装使用步骤
环境准备
安装PaddlePaddle框架(1.5.1版本或更高版本)和相关的依赖库,使用以下命令建立环境:
conda create -n adversary python=3.7
pip install paddlepaddle-gpu==1.5.1.post97
代码下载
复制项目代码文件:
cd baidu_AI_adversary
数据准备
准备图像分类任务的测试数据集,同时下载预训练模型,下载地址:https://aistudio.baidu.com/aistudio/datasetdetail/19746,解压模型:
tar xvf pretrained.tar.bz2
运行程序
激活环境并运行dog_ensemble_final.py
脚本,开始图像分类模型攻击测试:
conda activate adversary
python dog_ensemble_final.py
运行时间比较长,可考虑在后台运行:
nohup python -u dog_ensemble_final.py&
通过以下命令查看 log:
tail -f nohup.out
结果查看
查看输出文件路径datasets/outputs
,获取攻击结果和评估指标。
注意:运行时间可能较长,需要耐心等待。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】