Dataset Distillation as Data Compression (DD-RUO) [ICCV 2025]
June 28, 2026 · View on GitHub
English | 简体中文
本仓库是论文 Dataset Distillation as Data Compression: A Rate-Utility Perspective(ICCV 2025)的官方 PyTorch 实现。
Overview
我们将数据集蒸馏重新建模为率-效用(rate-utility)优化问题:合成数据集不再以像素形式存储,而是用神经图像压缩的方式参数化——每个(组)合成样本由一组隐变量(latent grids)、一个熵网络与一个解码器表示(沿用 C3 的设计)。以每像素比特数(bpp)度量存储代价,以下游训练精度度量效用,二者的权衡由系数 λ 控制。该参数化与具体蒸馏目标正交,可统一搭配 Trajectory Matching (TM)、Gradient Matching (GM)、Distribution Matching (DM) 三种损失。
代码结构
core/ 共享库(三方法共用一份):图像表征主干 TensorPool(latent + 熵网络 + 解码器)+ 工具与网络定义
TM/ Trajectory Matching:蒸馏训练入口 pool_tm.py + expert trajectory 生成 buffer.py + scripts/
DM/ Distribution Matching:蒸馏训练入口 pool_dm.py + scripts/
DC/ Gradient Matching(论文中称 GM):蒸馏训练入口 pool_dc.py + scripts/
quantize/ 阶段二·后量化(三方法共享):quantize_pool.py + scripts/
cross_eval/ 阶段三·多架构测评(三方法共享):cross_evaluate.py + scripts/
entropy_codec/ 实际比特流编解码与码率分析:encode_v2.py / decode_v2.py / analyze.py + scripts/
三种蒸馏损失共享同一条 TensorPool 链路,差异仅在蒸馏训练入口(
pool_*.py);quantize/与cross_eval/与蒸馏方法无关,任意方法产出的 pool 都可直接使用。
Requirements
conda env create -f TM/scripts/environment.yml
conda activate dd_ruo
Dataset
下载 ImageNet-1K,并在各脚本顶部填入数据集路径。实验在 128×128 的 ImageNet 10 类子集上进行:ImageNette / ImageWoof / ImageFruit / ImageYellow / ImageMeow / ImageSquawk。
Method
合成数据集的训练分为四个阶段(与论文一致):
- Initialization(warm-up):用率-失真系数 β 初始化压缩表示(TM 取 β=10,GM/DM 取 β=10⁶)。
- Joint rate-utility optimization:用率-效用系数 λ 联合优化蒸馏目标与码率,采用两阶段调度——前半程较大的 λ 偏重蒸馏性能,后半程减小 λ 以收紧比特预算。
- Post-quantization:在一组 MSE 阈值中选择能满足目标 bpc 预算且率-效用最优的量化精度。
- Evaluation:训练若干个分类器并报告平均精度;跨架构评估作为消融实验。
主要超参数:
β— 初始化阶段的率-失真权衡λ— 联合优化阶段的率-效用权衡(两阶段)- 解码器版本 / 熵网络上下文大小 / slice size — 压缩网络结构
各数据集、各蒸馏损失下的详细取值见论文,逐实验的真实启动脚本、日志位置与权重映射随权重发布在 ModelScope 仓库内的 checkpoints_release/。
Usage
三种蒸馏损失共享同一条图像表征链路,区别仅在蒸馏训练入口;脚本中 pool_path=init 时会自动完成 Initialization(warm-up)。
TM(默认)
TM 需要先生成 expert trajectories:
cd TM/scripts
bash run_buffer.sh
bash run_pool_tm.sh
DM
cd DM/scripts
bash run_pool_dm.sh
GM(代码目录为 DC/)
cd DC/scripts
bash run_pool_dc.sh
Post-quantization(三方法共享)
cd quantize/scripts
bash run_quantize.sh
Cross-architecture Evaluation(消融,三方法共享)
cd cross_eval/scripts
bash run_cross_eval.sh
各阶段的超参数(β、λ、解码器结构、MSE 阈值、评估架构等)均在对应 bash 脚本顶部,请参照脚本注释填写。
预训练权重
预训练的合成数据集、训练日志与启动脚本发布在 ModelScope: yiping03/dd-ruo0。下载后放入 checkpoints/ 即可直接用于 Post-quantization 与 Evaluation:
from modelscope import snapshot_download
snapshot_download('yiping03/dd-ruo0')
逐实验的真实启动脚本、日志位置与权重映射见 ModelScope 仓库内的 checkpoints_release/。
Citation
如果本工作对你的研究有帮助,欢迎引用:
@inproceedings{bao2025ruo,
author = {Youneng Bao and Yiping Liu and Zhuo Chen and Yongsheng Liang and Mu Li and Kede Ma},
title = {Dataset Distillation as Data Compression: A Rate-Utility Perspective},
booktitle = {IEEE/CVF International Conference on Computer Vision},
year = {2025},
}
Acknowledgement
本仓库的实现建立在以下工作之上:
- C3: High-performance and low-complexity neural compression (Cool-Chic) — Code
- Frequency Domain-based Dataset Distillation (FreD), NeurIPS 2023 — Code
- Distilling Dataset into Neural Field (DDiF), ICLR 2025 — Code
- Dataset Condensation with Gradient Matching / Distribution Matching — Code
- Dataset Distillation by Matching Training Trajectories — Code