lightning-hydra-template

开箱即用的深度学习实验框架,配置驱动,快速复现和扩展。

这是一个面向机器学习实验的工程化模板,基于 PyTorch Lightning 和 Hydra 构建。它解决了深度学习项目中配置管理混乱、代码结构不清晰、实验难以复现和扩展的问题。核心能力包括:通过 Hydra 实现分层配置和命令行覆盖,支持多任务、多数据集、多模型的灵活组合;利用 Lightning 的 Trainer 简化训练、验证、测试流程,并集成日志记录、检查点保存、早停等常用功能;提供清晰的目录结构和可复用的代码模块,如数据模块、模型、回调、损失函数等,方便用户快速搭建新实验。模板还支持超参数搜索、分布式训练和部署导出,适合研究团队和工业界快速迭代。

开源 free 基础设施
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 5348
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类基础设施
开发团队ashleve
所属国家
官网地址
定价模式free
价格说明开源项目,完全免费,可自行部署使用。
访问状态
是否开源是
开源协议
主要语言Python
技术栈/模型best-practices,config,deep-learning,hydra,mlops,project-structure,pytorch,pytorch-lightning,reproducibility,template
GitHub 星标★ 5348
30天Star增速
HF 下载量
上线时间2020-11-04 00:00:00
最近更新2026-09-22 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数2

使用教程

难度:入门 约 15 分钟 部署方式:本地安装 7 步

环境要求

  • Python 环境(也可用 conda 创建独立环境)
  • 已按 PyTorch 官方说明安装好 PyTorch
  • 可联网安装 requirements.txt 中的依赖
  • 能运行 pytest 的测试环境(可选,用于验证)

安装与启动步骤

  1. 1获取项目代码

    README 要求点击 Use this template 按钮初始化自己的仓库,或直接下载代码;README 未给出 git clone 命令,此处不执行命令。

  2. 2安装 PyTorch

    README 明确要求先按 PyTorch 官方安装说明装好对应 CUDA/CPU 版本的 PyTorch,但未给出具体安装命令。

  3. 3安装依赖

    进入项目根目录后,按 Quickstart 安装 requirements.txt 中的依赖,需在装好 PyTorch 之后执行。

    pip install -r requirements.txt
  4. 4可选 conda 环境

    README 另提供 conda 方式,用 environment.yaml 创建名为 myenv 的环境并安装依赖,二选一即可。

    conda env create -f environment.yaml -n myenv
  5. 5启动训练

    模板自带 MNIST 分类示例,用默认配置启动训练,README 说明运行后应看到训练输出。

    python src/train.py
  6. 6调试模式运行

    debug=default 启用调试友好配置,debug=fdr 只跑 1 个 train/val/test 循环且仅用 1 个 batch。

    python train.py debug=default
    python train.py debug=fdr
  7. 7运行测试

    README 提供 pytest 验证命令,可跑全部测试、指定文件或跳过标记为 slow 的用例。

    pytest
    pytest tests/test_train.py
    pytest -k "not slow"

关键配置

配置项必填说明示例
debug否切换调试配置,default 为调试友好模式,fdr 为单批次快速调试default
tags否为实验打标签便于过滤,单次运行缺失时会提示手动输入tags=["mnist","experiment_X"]
+trainer.val_check_interval否控制每个训练 epoch 内执行验证循环的次数0.25
configs/hparams_search/mnist_optuna.yaml否Hydra 超参数搜索配置文件路径configs/hparams_search/mnist_optuna.yaml

如何确认成功

执行 python src/train.py 后终端出现 MNIST 训练日志与进度条,且无异常报错退出,即视为启动成功。

常见问题

Q:不装 PyTorch 直接 pip install -r requirements.txt 可以吗?

A:不行。README 明确要求先按 PyTorch 官方说明安装 PyTorch,再执行 pip install -r requirements.txt。

Q:运行时没有提供 tags 会怎样?

A:单次运行会被提示在命令行输入逗号分隔的 tags;若是 multirun 则直接抛出 ValueError,要求先指定 tags。

Q:如何只运行部分测试?

A:可执行 pytest tests/test_train.py 只跑该文件,或用 pytest -k "not slow" 跳过标记为 slow 的测试用例。

Q:怎么做超参数搜索?

A:README 说明超参搜索已定义在 configs/hparams_search/mnist_optuna.yaml 中,可基于该文件运行搜索。

Q:为什么运行中会偶发报错?

A:README 指出 Lightning 与 Hydra 仍在演进且集成库众多,有时会出现不兼容导致报错,可查看仓库 bug 标签页。

注意事项

  • README 未提供 git clone 命令,请通过 Use this template 按钮或下载代码包获取项目。
  • Hydra 当前不支持从命令行追加列表,tags 传参时可能需按 README 提示转义方括号。
  • 该模板更适合基于现成数据的模型原型开发,不太适合构建相互依赖的数据工程管道。
  • 命令中出现的 train.py 与 src/train.py 均来自 README,请按实际所在目录执行。

核心亮点

  • 配置与代码解耦,Hydra 支持分层配置和命令行覆盖,实验管理高效
  • 目录结构清晰,模块化设计,数据、模型、回调等组件即插即用
  • 集成常用训练技巧(如 EMA、SWA、剪枝)和丰富的日志/可视化选项

不足之处

  • 学习曲线较陡,需要同时熟悉 PyTorch Lightning 和 Hydra 的用法
  • 模板代码较多,对于简单项目可能显得过重,定制化需要一定成本

适用场景

  • 快速启动新的深度学习研究实验,如分类、分割、生成等
  • 团队协作时统一实验配置和代码结构,便于复现和交接
  • 需要大规模超参数搜索或分布式训练的场景

替代项目

PyTorch Lightning Bolts、Catalyst、Kedro

项目介绍

lightning-hydra-template 是模型训练领域的开源项目,由 ashleve 开发,2020 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(5,348)位列前 9%,在模型训练分类的 522 个项目里位列前 10%。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-22。完全免费,可自行部署使用。

它主要面向的使用场景是:快速启动新的深度学习研究实验,如分类、分割、生成等。同类可对比的替代方案包括 PyTorch Lightning Bolts、Catalyst、Kedro。

上一篇:MLFlowClient.jl

下一篇:kedro-mlflow

同类项目推荐

Long-RL 开源

让强化学习轻松驾驭超长序列,训练更稳更快

Long-RL: Scaling RL to Long Sequences (NeurIPS 2025)

★ 729 2026-08-09
TPA 开源

把注意力复杂度从平方降到线性,长序列不再卡顿

[NeurIPS 2025 Spotlight] TPA: Tensor ProducT ATTenTion Transformer (https://arxiv.or···

★ 463 2026-08-09
minimind 开源

两小时造出你的小模型,练手入门不求人

Train a 64M-parameter LLM from scratch in just 2h!

★ 62178 2026-08-09
pruna 开源

一键优化 AI 模型,推理提速又省资源。

Pruna is a model optimization framework built for developers, enabling you to delive···

★ 1286 2026-08-13