CIFAR # dataset name
|-- train # trainset
|-- dog # class name
|-- XX.png # corrensponding images
|-- XX.png
|-- ...
|-- cat
|-- XX.png
|-- XX.png
|-- ...
|-- ...
|-- classes.json # class name and corresponding index
B.模型:
I. class文件表示你在该数据集上训练该模型时所使用的类别名称其对应的索引。需要按如下格式编写:
@inproceedings{yin2023dynamic,
title={Dynamic Data Fault Localization for Deep Neural Networks},
author={Yin, Yining and Feng, Yang and Weng, Shihao and Liu, Zixi and Yao, Yuan and Zhang, Yichi and Zhao, Zhihong and Chen, Zhenyu},
booktitle={Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering},
pages={1345--1357},
year={2023}
}
DFauLo 工具
一、描述
DfauLo 是一个用于深度神经网络(DNN)的动态数据故障定位工具,能够定位深度学习数据集中标签错误和噪声数据。受传统基于变异的代码故障定位方法启发,DfauLo 生成多个原始训练DNN模型的变体,并将提取的特征映射为可疑度得分,指示给定数据作为数据故障的概率。DfauLo 是首个动态数据故障定位技术,根据用户反馈对嫌疑数据进行优先处理,并在训练期间对未见的数据故障提供通用化支持。
二、在任意自定义数据集上运行DfauLo
(1)超参数说明:
--dataset_name
: 数据集名称,例如: EMNIST--model_name
: 模型名称,例如: WaveMix--image_size
: 输入到模型中的数据的维度,例如: (32, 32, 3)--image_set
: 训练集或测试集,例如: train--hook_layer
: 您需要从中提取特征的模型表示层名称(建议使用线性层之前的参数),例如: conv--rm_ratio
: 执行变异时要删除的数据比例, 例如: 0.05--retrain_epoch
: DfauLo 工具进行模型微调的轮次数,例如: 1--retrain_bs
: DfauLo 工具进行模型微调的批处理大小,例如: 64(2)需要进行的数据集和模型准备:
A.数据集:
您应首先准备数据集,根目录为数据集名称(dataset_name),下级目录代表该数据集的训练集/测试集,每个类别目录以数据集的类别名称命名,并存储相应类别的图像,例如:
注意,数据集命名应与
dataset_name
参数一致B.模型:
I. class文件表示你在该数据集上训练该模型时所使用的类别名称其对应的索引。需要按如下格式编写:
注意,class文件命名应遵循
{dataset_name}_classes.json
格式,例如EMNIST_classes.json
II. 模型训练参数,DFauLo 需要类似以下这些你在该数据集上训练该模型时的参数以支持运行。
注意,参数文件命名应遵循
{dataset_name}_model_args.pth
格式,例如EMNIST_model_args.pth
注意,在训练模型时,使用带有正则化的
transform
可以为 DfauLo 获得更好的效果。III. 模型类文件(PyTorch)。你需要提供模型类文件以支持DFauLo对模型进行特征提取,例如: WaveMix.py
注意,模型文件命名应遵循
{model_name}.py
格式,例如WaveMix.py
,其中模型类应以model_name
为名。IV. 模型权重文件。你需要提供在
dataset_name
上初步训练好的模型权重。注意,模型权重命名应遵循
{model_name}.pth
格式三、运行结果展示
以下展示了一些在基准数据集 MNIST 上运行 DfauLo.py 的结果:
label: 4
label: 7
label: 6
label: 7
label: 1
引用
如果您用到该库中的相关代码,请你引用以下内容(bibtex):