MNIST挑战提交指南:如何正确准备和提交攻击结果
【免费下载链接】mnist_challengeA challenge to explore adversarial robustness of neural networks on MNIST.项目地址: https://gitcode.com/gh_mirrors/mn/mnist_challenge
MNIST挑战是探索神经网络在MNIST数据集上对抗鲁棒性的开源项目,本指南将帮助你快速掌握攻击结果的准备与提交全流程,让你的 adversarial attack 成果顺利通过评估系统验证。
📋 提交前的准备工作
环境配置要点
克隆项目仓库
首先确保本地环境已准备就绪,通过以下命令获取完整项目代码:git clone https://gitcode.com/gh_mirrors/mn/mnist_challenge配置文件检查
核心参数在 config.json 中定义,需重点确认以下字段:epsilon: 扰动范围上限(默认值通常为0.3)store_adv_path: 攻击样本存储路径(默认生成adv_examples.npy)model_dir: 模型 checkpoint 存放目录
攻击样本生成规范
攻击样本需满足严格的格式要求,否则评估将直接失败:
- 维度要求:必须是 (10000, 784) 的 numpy 数组(10000个样本,每个28×28像素展开)
- 像素范围:所有值必须在 [0, 1] 区间内,避免NaN或越界值
- 扰动限制:L∞范数(最大扰动值)不得超过
config.json中定义的epsilon
⚙️ 攻击结果生成流程
1. 选择攻击算法
项目提供了基础的 PGD 攻击实现 pgd_attack.py,你可以:
- 直接使用现有攻击方法(修改参数后运行)
- 集成自定义攻击算法(需保持接口兼容)
2. 生成对抗样本
运行攻击脚本生成符合要求的.npy文件:
python pgd_attack.py成功执行后,会在指定路径生成攻击样本文件(默认adv_examples.npy)。
3. 本地验证关键步骤
在提交前务必进行本地验证,避免因格式错误导致失败:
检查文件格式
import numpy as np x_adv = np.load('adv_examples.npy') print(f"形状检查: {x_adv.shape == (10000, 784)}") # 必须返回 True print(f"范围检查: {np.amin(x_adv) >= 0 and np.amax(x_adv) <= 1}") # 必须返回 True运行本地评估
使用 run_attack.py 验证攻击效果:
python run_attack.py该脚本会自动:
- 检查样本格式有效性
- 计算模型在攻击样本上的准确率
- 生成预测结果文件 pred.npy
📤 正式提交步骤
提交文件清单
需同时提交以下两个文件:
- 对抗样本文件:
adv_examples.npy(严格遵循格式要求) - 预测结果文件:
pred.npy(由run_attack.py自动生成)
评估流程说明
提交后系统将通过 eval.py 进行自动化评估,主要步骤包括:
- 加载最新模型 checkpoint
- 对攻击样本进行批次处理
- 计算自然准确率与对抗准确率
- 生成评估报告(包含损失值与准确率指标)
结果查看方式
评估结果将以两种形式呈现:
- 终端输出:实时显示准确率(如
adversarial: 45.23%) - Tensorboard 日志:详细指标存储在
model_dir/eval目录
❗ 常见错误与解决方案
格式错误类
"Invalid shape" 错误
→ 检查样本维度是否为 (10000, 784),可使用x_adv = x_adv.reshape(10000, 784)修复"Invalid pixel range" 错误
→ 执行归一化操作:x_adv = np.clip(x_adv, 0, 1)
评估失败类
扰动超限
→ 降低攻击强度或调整epsilon参数,确保np.amax(np.abs(x_nat - x_adv)) <= epsilon模型加载失败
→ 确认model_dir中存在有效 checkpoint,可运行fetch_model.py获取预训练模型
📌 最佳实践建议
版本控制
对攻击代码和生成样本进行版本管理,推荐使用分支记录不同攻击策略参数调优
通过调整 config.json 中的k(迭代次数)和a(步长)优化攻击效果结果复现
保存所有实验参数,确保攻击结果可复现(建议使用requirements.txt固定依赖版本)
通过以上步骤,你就能顺利完成MNIST挑战的攻击结果提交。祝你的 adversarial attack 取得优异成绩!
【免费下载链接】mnist_challengeA challenge to explore adversarial robustness of neural networks on MNIST.项目地址: https://gitcode.com/gh_mirrors/mn/mnist_challenge
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考