【PyTorch][chapter 228][李宏毅深度学习][Diffusion Model-1]

前言:

《Denoising Diffusion Probabilistic Models》

  • 作者:Jonathan Ho, Ajay Jain, and Pieter Abbeel

一、模型原理

Diffusion Model的原理基于扩散过程,这个过程分为两个主要阶段:前向过程和反向过程。

  1. 前向过程:在前向过程中,模型对一张原始图片逐步施加噪声,直至图像被破坏变成完全的高斯噪声。这个过程中,每个时间步加入的噪声都是服从正态分布的。随着一步步加入噪声,每一步必须要加入更大的噪声才能看出加了噪声的效果。
  2. 反向过程:在反向过程中,模型学习从高斯噪声还原为原始图像的过程。这实际上是一个去噪过程,模型通过逐步去噪,最终得到一张清晰的图像。

二、模型架构

PyTorch Diffusion Model的模型架构通常包括一个神经网络,该网络学习从噪声到图片的映射。常见的模型架构包括U-Net、VAE等。这些模型通常由编码器和解码器组成:

  1. 编码器:编码器将输入的噪声逐步转换为更复杂的表示。
  2. 解码器:解码器则将编码器的输出逐步解码为最终的图片

三、训练过程

为了训练PyTorch Diffusion Model,需要准备一个数据集,其中包含大量真实图片和对应的噪声图片。噪声图片可以通过对真实图片添加高斯噪声来生成。数据集应该分为训练集、验证集和测试集。

在训练过程中,通过反向传播和优化器来更新模型的权重,使得模型能够从噪声图片生成真实的图片。训练过程中可以使用不同的损失函数,如重建损失、KL散度等来度量生成的图片与真实图片之间的差异。

四、应用与优化

PyTorch Diffusion Model在图像生成领域具有广泛的应用前景,如图像修复、超分辨率、风格迁移等。为了提高模型的性能和效率,可以进行以下优化:

  1. 参数调整:包括学习率、批量大小等关键参数的调整,以获得更好的收敛效果。
  2. 内存管理:通过优化内存使用,减少内存消耗,提高训练速度。
  3. 计算加速:利用GPU进行并行计算,可以显著提高模型训练和推理的速度。
  4. 混合精度训练:使用不同精度数据类型进行训练,减少内存消耗和计算时间。

目录:

  1. 简介
  2. Text- to -image 简介

一 简介

1.1 Diffusion Model 生成图片过程

这个过程叫做 Reverse Process

1 随机生成一张符合高斯分布的噪声图片1

2 把图片1输入Denoise 模型去除噪声,得到图片2

3 把图片2输入Denoise 模型去除噪声,输出图片3

4 依次迭代,不断的Denoise,最后生成图片

1.2 Denoise Model

输入:

图片X + step(噪声的严重程度)

内部架构

首先通过Noise Predicter 预测出噪声图片N,然后把输入图片X减去噪声图片N

得到输出

1.3 Noise Predicter 模块

1.3.1 问题:

Noise Predicter 模型如何得到训练的数据集

1.3.2 解决方法:

Forward Process or Diffusion Process

原始图片

step1: 随机采样了噪声, 输出

step2:随机采样了噪声, 输出

Step3: 随机采样了噪声, 输出

依次类推,得到对应的训练集


二 Text to Image

文字如何生成图片

2.1 数据集

ImageNet LAION

2.1 Denoise 流程

输入:

文字,step, 图片

输出:

迭代输出图片

2.2 Denoise 模型


2.3 算法

Diffusion Model:比"GAN"还要牛逼的图像生成模型!论文精读+公式推导,迪哥2小时带你吃透扩散模型!_哔哩哔哩_bilibili

论文研读之Diffusion+Transformer时序生成:用于一般时序生成的可解释扩散模型_哔哩哔哩_bilibili 扩散模型 - Diffusion Model【李宏毅2023】_哔哩哔哩_bilibili

【斯坦福吴恩达】2024公认的最好的扩散模型原理课程-How Diffusion Models Work~_哔哩哔哩_bilibili

相关推荐
千宇宙航17 分钟前
闲庭信步使用SV搭建图像测试平台:第三十一课——基于神经网络的手写数字识别
图像处理·人工智能·深度学习·神经网络·计算机视觉·fpga开发
onceco1 小时前
领域LLM九讲——第5讲 为什么选择OpenManus而不是QwenAgent(附LLM免费api邀请码)
人工智能·python·深度学习·语言模型·自然语言处理·自动化
jndingxin4 小时前
OpenCV CUDA模块设备层-----高效地计算两个 uint 类型值的带权重平均值
人工智能·opencv·计算机视觉
Sweet锦4 小时前
零基础保姆级本地化部署文心大模型4.5开源系列
人工智能·语言模型·文心一言
hie988945 小时前
MATLAB锂离子电池伪二维(P2D)模型实现
人工智能·算法·matlab
晨同学03275 小时前
opencv的颜色通道问题 & rgb & bgr
人工智能·opencv·计算机视觉
蓝婷儿5 小时前
Python 机器学习核心入门与实战进阶 Day 3 - 决策树 & 随机森林模型实战
人工智能·python·机器学习
大千AI助手5 小时前
PageRank:互联网的马尔可夫链平衡态
人工智能·机器学习·贝叶斯·mc·pagerank·条件概率·马尔科夫链
小和尚同志5 小时前
Cline | Cline + Grok3 免费 AI 编程新体验
人工智能·aigc
我就是全世界5 小时前
TensorRT-LLM:大模型推理加速的核心技术与实践优势
人工智能·机器学习·性能优化·大模型·tensorrt-llm