项目简介
torchdistill 是一个模块化、配置驱动的框架,旨在简化知识蒸馏实验的设计和执行。基于 declarative yaml 配置文件,不需要编写 Python 代码,即可实现对多种最先进的知识蒸馏方法的支持,其前身为 kdkit。即便需要在教师或学生模型中提取中间表示,也只需在 yaml 文件中指定模块路径,而无需重新实现模型。
主要功能和特点
配置文件驱动
在 torchdistill 中,一个实验仅需一个 declarative PyYAML 配置文件描述。用户可以在不编写或仅编写极少 Python 代码的情况下,定义模型、数据集、优化器和损失函数等组件,达成实验的总结和执行目的。
🛠 代码和模块集成
即使想要加入自定义的模块(如模型、损失函数、数据集等),用户亦可在不修改本地 torchdistill/
包中的代码的情况下进行整合。文档及讨论板提供了更多操作细节。
🧩 中间表示提取
使用 ForwardHookManager,可以在不修改模型前向函数接口的情况下,提取中间表示。这使得进行知识蒸馏及中间表示分析变得更加便捷。
深度学习实验
除了知识蒸馏,该框架还能帮助设计和执行一般的深度学习实验。无需教师模型的情况下,用户只需从 yaml 配置文件中移除教师项,即可进行模型训练。
使用场景和示例
torchdistill 提供多种应用场景和示例代码,包括:
- 图像分类(支持 ImageNet、CIFAR-10、CIFAR-100 等)
- 物体检测(如 COCO 2017)
- 语义分割(如 COCO 2017 和 PASCAL VOC)
- 文本分类(如 GLUE)
在示例代码仓库中,用户可以找到可执行的代码示例,以满足不同数据集和模型的应用需求。
支持系统与安装步骤
- 安装要求:Python版本需为 3.9 或更高
- 若需安装 pipenv 可选项,则按照下列步骤操作
可以通过 pip 或 pipenv 直接安装:
pip3 install torchdistill
# 或使用 pipenv
pipenv install torchdistill
若在本地库中安装(不推荐),则可执行:
git clone https://github.com/yoshitomo-matsubara/torchdistill.git
cd torchdistill/
pip3 install -e .
# 或使用 pipenv
pipenv install "-e ."
引用与支持
使用 torchdistill 进行研究时,请标注并引用相关文献。而用户若在使用中遇到问题、产生疑问或者希望新功能,可以在项目的 GitHub 讨论区发起讨论。此外,如发现问题或错误,欢迎在 GitHub 创建 issue。
结语
torchdistill 提供了一个便捷、高效且灵活的框架,用于实现前沿的知识蒸馏方法和执行深度学习实验,而无需繁琐的编码工作。通过它,研究者可以更加专注于实验设计与创新性研究,享受到无代码化带来的便利。