Repolode
lucidrains

lucidrains/denoising-diffusion-pytorch

基于 PyTorch 实现的去噪扩散概率模型,用于训练图像及一维序列生成模型。

Star
10,710
Fork
1,283
未关闭 Issue
169
最近提交
23天前

这是什么?

本项目是去噪扩散概率模型(DDPM)的 PyTorch 实现。该模型通过学习逆转逐步加噪的过程来生成数据。项目提供 U-Net 主干网络,以及 GaussianDiffusion 类,用于处理前向加噪、训练损失计算和采样生成。

Trainer 类可以直接接收一个图片文件夹,负责数据加载、训练循环、定期保存样本与模型检查点,并可选计算 FID 指标。训练支持 Hugging Face Accelerate 进行多 GPU 训练,也支持混合精度(amp)。采样方面支持 DDIM 方式,以更少的步数加速推理。

项目还包含一维 U-Net 与一维扩散模型,可用于序列数据;XMWrapper 则提供多候选损失计算。该库可通过 PyPI 安装,适合希望研究或改造扩散模型、需要可读性强的参考实现的研究者和开发者。

核心功能

  • 01以 PyTorch 实现 DDPM 的训练目标与采样流程。
  • 02提供可配置的 U-Net 主干网络,并可启用 flash attention。
  • 03Trainer 类负责基于文件夹的图片数据集、检查点保存与样本记录。
  • 04通过 Hugging Face Accelerate 支持多 GPU 训练和混合精度。
  • 05支持 DDIM 方式的少步数采样,并可在训练中计算 FID。
  • 06提供用于序列数据的一维 U-Net 与扩散模型。

适用场景

  • 在自定义图片文件夹上训练小型图像生成模型。
  • 学习或修改扩散模型的核心训练与采样代码。
  • 为一维序列数据原型验证扩散模型。
  • 结合 Accelerate 进行多 GPU 扩散模型训练实验。

快速上手

  1. 1

    从 PyPI 安装该包

    pip install denoising_diffusion_pytorch
  2. 2

    构建模型和扩散对象,然后使用 Trainer 类在图片文件夹上训练

  3. 3

    开始训练

    trainer.train()

使用前须知

  • 训练真实尺寸的图片需要 GPU 并耗费大量时间(示例使用 700000 步)。

标签

常见问题

denoising-diffusion-pytorch 是什么?
基于 PyTorch 实现的去噪扩散概率模型,用于训练图像及一维序列生成模型。 本项目是去噪扩散概率模型(DDPM)的 PyTorch 实现。该模型通过学习逆转逐步加噪的过程来生成数据。项目提供 U-Net 主干网络,以及 GaussianDiffusion 类,用于处理前向加噪、训练损失计算和采样生成。
denoising-diffusion-pytorch 可以免费使用吗?用的什么许可证?
denoising-diffusion-pytorch 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
denoising-diffusion-pytorch 还在维护吗?
活跃维护中。denoising-diffusion-pytorch 最近一次提交是在 2026年9月29日。
denoising-diffusion-pytorch 适合用来做什么?
在自定义图片文件夹上训练小型图像生成模型。 学习或修改扩散模型的核心训练与采样代码。 为一维序列数据原型验证扩散模型。 结合 Accelerate 进行多 GPU 扩散模型训练实验。
denoising-diffusion-pytorch 怎么安装和运行?
从 PyPI 安装该包: pip install denoising_diffusion_pytorch 构建模型和扩散对象,然后使用 Trainer 类在图片文件夹上训练 开始训练: trainer.train()
在哪里获取 denoising-diffusion-pytorch?
源代码和安装说明在 GitHub 上:https://github.com/lucidrains/denoising-diffusion-pytorch

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目