当前位置: 首页 > news >正文

DiT block学习

在这里插入图片描述
最近在做DIffusion-Planner的相关工作,其中用到了Dit模块,这个模块来自论文《Scalable Diffusion Models with Transformers 》,主要是开发了一种基于Transformer的扩散模型,Diffusion Transformers(DiT),这篇文章记录一下对DiT结构的学习。

架构设计

在这里只关注其中的DiT Block部分,这也是DiT的核心内容。对于DiT Block的网络结构设计,作者做了四个尝试。

1)In-context conditioning

这是一种简单直观的条件注入方法,即将时间t和其他条件(如图像生成中的类别C,轨迹规划中的route信息)与token(patch后的图像,真实专家轨迹)进行拼接,然后就可以用标准的ViT模型了,在最后一个Transformer块之后,移除条件token。
在这里插入图片描述

2)Cross-Attention

这个设计是将时间步t和类别标签c的嵌入拼接为长度为2的序列,作为key和value,图像token经过self-attention模块后作为query,和条件组成的序列做cross-attention操作。这种设计最大会增加15%的计算开销。
在这里插入图片描述

3) Adaptive layer norm(addLN) block

这个结构中借鉴了在 GANs 和基于 U-Net 的扩散模型中广泛使用的自适应归一化层。核心在于用条件信息来调制归一化层(layer norm)的参数
标准的Layer norm

# 标准LayerNorm:γ和β是可学习参数
output = (input - mean) / std * γ + β  # γ, β 是固定参数

自适应 LayerNorm (adaLN)​​

#adaLN:γ和β从条件信息动态生成
γ, β = MLP(embedding(t) + embedding(c))  # 从条件回归得到
output = (input - mean) / std * γ + β    # γ, β 是条件相关的

具体过程如下
将时间步 t 和类别 c 分别嵌入为向量
将两个嵌入向量相加:condition = embed(t) + embed©
通过一个小型 MLP 从 condition 回归出 γ 和 β。

在前三种方法中,adaLN 增加的计算开销最小,因此是计算效率最高的,

4)adaLN-Zero block

作者基于adaLN结构,将 ResNet 和 U-Net 中成功的零初始化策略应用到 Transformer 架构中。此外,除了回归 γ 和 β 之外,作者还回归维度级的缩放参数 α,这些参数被应用于 DiT 块内任何残差连接之前。

class DiTBlockWithAdaLNZero(nn.Module):def forward(self, x, condition):# 从条件回归多个调制参数params = self.condition_mlp(condition)  # [batch, hidden_size*6]gamma1, beta1, gamma2, beta2, alpha1, alpha2 = params.chunk(6, dim=1)# 注意力路径(带门控残差)h = self.adaLN(x, gamma1, beta1)h = self.attention(h)x = x + alpha1.unsqueeze(1) * h  # α1 控制注意力残差# 前馈路径(带门控残差)  h = self.adaLN(x, gamma2, beta2)h = self.mlp(h)x = x + alpha2.unsqueeze(1) * h  # α2 控制前馈残差return x

其中alpha1, alpha2初始化为0。这是作者最终使用的结构。
在这里插入图片描述

四个网络结构的对比

在这里插入图片描述

http://www.dtcms.com/a/606930.html

相关文章:

  • 武安市住房和城乡规划建设局网站wordpress下拉框插件
  • 广东东信润建设有限公司网站搜索关键词排名查询
  • fastapi 中的db.add db.comit db.flush db.refresh都是什么意思 有顺序吗
  • 网站301设置上海百度推广排名
  • 免费做店招哪个网站好新站网站推广该如何做
  • 宝安三网合一网站建设佛山外贸网站建设机构
  • 打工人日报#20251113
  • 高压直流270V电源:无人机地面起动概述
  • 华建建设集团网站网站运营方法
  • java 全景图切片处理,前端用pannellum框架加载
  • 嵌入式开发核心题全解析
  • 营销型企业网站系统模板下载重庆宣传片制作
  • IDEA多java版本切换
  • phpcms校园网站厦门网站制作软件
  • 网站推广有什么方法wordpress电影广告插件
  • 广州的一起做网站自己做的网站打不开怎么搞
  • 2025 多场景运营:用 PageAdmin+QuickSSO 搭建站群,1 套认证管 N 个站点
  • AI解锁物流:文档抽取重塑供应链效率
  • 第12篇 EntryPointNotFoundException: 无法在 DLL“onnxruntime”中找到名为“OrtGetApiBase”的入口点
  • FT8783ND1低成本5V2A电源芯片方案替代LP3783A(轻松过EMC,过认证)
  • 手表官方网站小程序登录失败是什么原因
  • 本地部署个人仪表板 SimpleDash 并实现外部访问
  • 百色市右江区了建设局网站什么网站可以做邮件列表
  • 交换机路由器基础(四)--TCPIP四层模型及常见协议技术
  • 为什么要建设旅游网站网站开发工作容易出现的失误
  • 做外贸站推广wordpress怎么换空间
  • 使用wordpress做图站百度官网app
  • HCIP-IoT/H52-111 真题详解(章节A),行业解决方案与华为云 /Part1
  • 东莞网站建设设计公司哪家好excel表如何做网站连接
  • 螺杆支撑座类型与工况匹配场景