Multisize Dataset Condensation
收藏Multisize Dataset Condensation 数据集概述
摘要
该数据集旨在解决在设备上应用数据集浓缩技术时面临的两个挑战:1) 设备计算资源的波动性要求数据集大小具有灵活性;2) 设备有限的计算能力通常不允许额外的浓缩操作。为此,提出了Multisize Dataset Condensation (MDC)方法,通过将N个浓缩过程压缩为一个过程,以获得具有多种大小的数据集。MDC方法引入“自适应子集损失”来缓解“子集退化问题”,并提供了以下好处:1) 无需额外的浓缩过程;2) 通过重用浓缩图像减少存储需求。实验验证了该方法在ConvNet、ResNet和DenseNet等网络以及SVHN、CIFAR-10、CIFAR-100和ImageNet等数据集上的有效性。
代码结构
condense_reg.py: 浓缩过程的主文件。reg_ipcx.py: 辅助类和函数,用于维护和更新“最可学习子集(MLS)”。
关键功能
feat_loss_for_ipc_reg(): 特征距离计算。select_reg_ipc(): 特征距离比较。get_freeze_ipc(): MLS冻结判断。
基本使用
安装
-
下载仓库:
git clone https://github.com/he-y/Multisize-Dataset-Condensation MDC cd MDC
-
创建PyTorch环境:
conda env create -f environment.yaml conda activate mdc
浓缩
-
单进程浓缩:
python condense_reg.py --reproduce -d [DATASET] -f [FACTOR] --ipc [IPC] --adaptive_reg True
例如:
python condense_reg.py --reproduce -d cifar10 -f 2 --ipc 10 --adaptive_reg True
-
多进程浓缩:
python condense_reg_mp.py --reproduce -d [DATASET] -f [FACTOR] --ipc [IPC] --adaptive_reg True --nclass_sub [NUM_SUB_CLASS] --phase [PHASE_ID]
例如:
python condense_reg_mp.py --reproduce -d cifar10 -f 2 --ipc 10 --adaptive_reg True --nclass_sub 5 --phase 0 & python condense_reg_mp.py --reproduce -d cifar10 -f 2 --ipc 10 --adaptive_reg True --nclass_sub 5 --phase 1 &
测试
-
评估浓缩数据集:
python test.py --reproduce -d [DATASET] -f [FACTOR] --ipc [IPC] --test_type [CHOICES] --test_data_dir [PATH_TO_CONDENSED_DATA_DIR] --ipcy [IPCY]
例如:
python test.py --reproduce -d cifar10 -f 2 --ipc 10 --test_type cx_cy --test_data_dir ./path_to_ipc10_data --ipcy 5 --repeat 3
实验结果
浓缩数据集可从Google Drive下载,包括以下内容:
- 基线比较
- SOTA比较
- 消融研究
- 跨架构性能
- 评估指标比较
- 不同浓缩运行的效果
- 附录中的详细结果
相关工作
该数据集主要基于以下论文和代码库开发:
- Dataset Condensation via Efficient Synthetic-Data Parameterization
- DREAM: Efficient Dataset Distillation by Representative Matching
- Dataset Condensation with Gradient Matching



