DDPM代码讲解【详细!!!】

文章目录

    • 1、UNet网络结构
      • [1.1 residual网络和attention网络的细节](#1.1 residual网络和attention网络的细节)
      • [1.2 t 的作用](#1.2 t 的作用)
      • [1.3 DDPM 中的 Positional Embedding 的使用](#1.3 DDPM 中的 Positional Embedding 的使用)

1、UNet网络结构

UNet网络的总体框架如下,右边是UNet网络的整体框架,左边是residual网络和attention网络,

下面是UNet网络的详解结构图,左边进行有规律地残差、下采样、attention,右边也是有规律地残差、上采样、attention,相关的代码在图中给出,

1.1 residual网络和attention网络的细节

熟悉CNN的同学应该能看懂下图中的大部分过程。其中的 t 是时间从0到1000的随机值,假如是888,经过Positional Embedding输出长度是128的向量,下面再经过全连接层和silu层等,下面会详细讲解Positional Embedding和residual网络和attention网络,

1.2 t 的作用

1、和原图像一起,计算出 t时刻的图像 x t = 1 − α t ‾ ϵ + α t ‾ x 0 x_t=\sqrt{1-\overline{\alpha_t}}\epsilon+\sqrt{\overline{\alpha_t}}x_0 xt=1−αt ϵ+αt x0

2、将t进行编码,编码后,加到模型中,使模型学习到当前在哪个时刻

1.3 DDPM 中的 Positional Embedding 的使用

左图是Transformer的Positional Embedding,行索引代表第几个单词,列索引代表每个单词的特征向量,右图是DDPM的Positional Embedding,DDPM的Positional Embedding和Transformer的Positional Embedding的区别是DDPM的Positional Embedding并不是给每个词位置编码的,只需要在1000行中随机取出一行就可以了;另一个区别是DDPM的Positional Embedding并没有按照奇数位和偶数位进行拼接,而是按照前后的sin和cos进行拼接的,虽然拼接方式不同,但是最终的效果是一样的,

相关推荐
王小王-12310 分钟前
基于深度学习的景区口碑情感分析可视化系统
人工智能·深度学习·bert·情感分析·关键词提取·主题分析·景区评论分析
装不满的克莱因瓶26 分钟前
自然语言处理中的分词——从语言切分到模型输入的第一步
人工智能·pytorch·python·深度学习·ai·自然语言处理
逻辑君1 小时前
认知神经科学研究报告【20260071】
人工智能·深度学习·机器学习·数学建模
zhangfeng11331 小时前
ONNX Runtime 微软的推理引擎 TensorRT,NVIDIA GPU 上的深度学习推理, CUDA Graph
人工智能·深度学习·microsoft
code_pgf2 小时前
改进模型架构来减少MLLMs中的幻觉现象
人工智能·深度学习·算法
发光的小豆芽2 小时前
使用U-Net 做皮肤图像的毛孔检测尝试
深度学习·皮肤检测·u-net
All The Way North-3 小时前
大模型训练必修课:梯度裁剪(Gradient Clipping)从数学原理,到PyTorch工程实战全解析
pytorch·深度学习·混合精度训练·大模型训练·梯度裁剪·梯度爆炸·混合精度训练/amp
极光代码工作室3 小时前
基于机器学习的金融风险预测系统
python·深度学习·机器学习·ai·系统设计
装不满的克莱因瓶3 小时前
掌握条件生成对抗网络(Conditional GAN)模型结构——从无条件生成到可控生成的进阶
人工智能·pytorch·python·深度学习·神经网络·生成对抗网络·计算机视觉