5. 图像分类模型评测模块使用方法

图像分类模型评测模块可以通过读取 YAML 配置文件的方式在命令行中使用,命令如下:

python TestingImage.py /path/to/config.yml

配置文件的示例可见 AI-Testing/image/configs/ExampleConfigFile.yml。可配置的主要参数如下:

# 评测算法,可以是内置方法之一
# 也可以是用户自己实现的评测算法
# 实现方法及要求详见文档
recipe: AutoPGD
# 扰动大小,单位为像素值
perturbation: 1
# 被评测模型结构, 大小写敏感
# 可以是内置的模型 ResNet2, CIFAR10_RAND_enhanced 等
# 或者是内置或用户自定义的模型结构,
# 例如 Models.TestModel.resnet.ResNet18
# 也可以是 torchvision 支持的模型
# 具体来说是可以返回一个模型的函数,例如
# torchvision.models.resnet18
model: ResNet2
# 被评测模型本地路径
# 当模型结构是内置模型时,模型路径可以是空值
# 当模型结构是 torchvision 支持的结构时,若路径为空值,则从 torchvision 下载预训练模型
# 注意: torchvision 模型默认的预训练模型是在ImageNet上进行的预训练,
# 此时 data_type 参数最好设置成 ImageNet,
# 或者传入一个非空的与 data_type 配套的 model_path
model_path: null
# 评测用数据,内置有
# cifar10_30, cifar10_100, cifar10_300, cifar10_1000,
# ImageNetTiny(500张图), ImageNetSmall(5000张图), ImageCustom 等
data_type: cifar10_1000
# 评测用数据本地路径
# 可以是一个字典,也可以是一个列表,例如
# Data_path:
#   image_path: Datasets/CIFAR_cln_data/cifar10_30_origin_inputs.npy
#   label_path: Datasets/CIFAR_cln_data/cifar10_30_origin_labels.npy
# 如果是内置数据集,可以是空值
Data_path: null
# 评测用数据的 class map 文件路径
# 如果是内置数据集,可以是空值
Dict_path: null
# 是否是带目标的对抗攻击
IS_TARGETTED: false
# 是否是白盒对抗攻击
IS_WHITE: true
# 是否保存生成的对抗样本
IS_SAVE: false
# 生成的对抗样本保存路径,可以是空
save_path: null
# 批大小,即并行处理样本的个数
batch_size: 32
# 判断模型是否鲁棒的攻击成功率阈值
# 取值在 (0, 1) 区间内
robust_threshold: 0.6