3. 算法内核简介

3.1. 算法内核结构

├── EvalBox
│   ├──Analysis
│   ├──Attack
│   ├──Defense
│   ├──Evaluation
├── Models
│   ├──TestModel
│   ├──UserModel
│   ├──weights
│   ├──basic_module.py
├── utils
├── test
│   ├── testimport.py
│   ├── testimport_black.py
├── Datasets

3.2. 项目具体说明

EvalBox

EvalBox 是整个评估过程中使用到的攻击,评测,防御,分析的工具箱

  • Anaysis:对评估过程运用组合和集成的分析函数,来完成一个分析的过程
  • Attack:生成攻击样本的攻击算法库
  • defense:防御算法库
  • Evaluation:评测攻击指标的评测算法库
  • UserEvaluation:由用户扩展的评测攻击指标的评测算法库

Models

Models 是平台提供的部分模型库,用户也可以自行添加

  • TestModel:平台提供的部分模型库
  • UserModel:用于用户添加符合扩展要求的模型库
  • weights:存放相应的模型权重的位置
  • basic_module.py:包含一些和模型组成相关基础函数

utils

utils是工具库,包含常用的io,图像的处理,模型等相关的工具函数

test

test是平台提供的集成了完整攻击-预测-评测的流程的集成脚本工具,包含黑白盒调用方式

  • testimport.py 完整攻击(攻击样本可以支持黑盒的,也可从其他平台获取攻击样本,在攻击样本处设置为黑盒)、预测、评测的白盒调用
  • testimport.py 可分离为,仅仅生成攻击样本作为用于其他平台的黑盒数据输入,也可以完整使用生成的攻击样本,用在他处黑盒获得他处符合格式的黑盒预测结果,进行下一步的评测指标计算,输出指标值和可视化结果

Datasets

Datasets是存放常用数据集或用户自定义符合扩展要求的数据集的位置