DiffiT | 英伟达提出用于图像生成的扩散ViT架构DiffiT,达成新SOTA!

本文首发于AIWalker,欢迎关注。

https://arxiv.org/abs/2312.02139
https://github.com/NVlabs/DiffiT

扩散模型以其强大的表达能力和高样本质量在许多领域得到了新的应用。对于样本生成,这些模型依赖于通过迭代去噪生成图像的去噪神经网络。然而,去噪网络架构的作用并没有得到很好的研究,大多数工作都依赖于卷积残差U-Nets。
本文研究了视觉transformer在基于扩散的生成学习中的有效性。本文提出一种新模型,称为扩散视觉transformer (DiffiT),由一个具有U形编码器和解码器的混合分层架构组成。本文提出一种新的依赖时间的自注意力模块,允许注意力层以有效的方式自适应其在去噪过程的不同阶段的行为
此外,本文还提出了LatentDiffiT,由transformer模型和所提出的自注意力层组成,用于高分辨率图像生成。结果表明,DiffiT在生成高保真图像方面惊人地有效,并在各种类条件和无条件合成任务中实现了最先进的(SOTA)基准。在潜空间中,DiffiT在ImageNet256数据集上取得了新的SOTA FID分数1.73

本文方案

上图为本文所提DiffIT整体架构示意图,很明显,核心是所提DiffiT ResBlock,故我们仅对该核心模块进行简要介绍。

上图为DiffiT模块示意图,可以描述如下:
x ^ s = T M S A ( L N ( x s ) , x t ) + x s \hat{x}_s = TMSA(LN(x_s), x_t) + x_s x^s=TMSA(LN(xs),xt)+xs
x s = M L P ( L N ( ( ^ x ) s ) ) + ( ^ x ) s x_s = MLP(LN(\hat(x)_s)) + \hat(x)_s xs=MLP(LN((^x)s))+(^x)s

关于TMSA,在每一层,我们的transformer块接收{xs},一组标记在其输入中空间上排列在2D网格上。它还接收xt,这是表示时间步长的时间标记。通过将位置时间嵌入提供给具有swish激活的小型MLP来获得时间标记[19]。这次令牌被传递到我们的去噪网络中的所有层。本文提出了时间依赖的多头自注意力,通过在共享空间中投影特征和时间标记嵌入来捕捉长程空间和时间依赖性。具体来说,共享空间中的时间依赖查询q、键k和值v是
通过空间和时间嵌入的线性投影xs和xt via计算

key、query和value都是时间和空间token的线性函数,它们可以针对不同的时间步长自适应地修改注意力的行为。

图像空间

DiffIT结构 DiffiT使用对称的u型编码器-解码器架构,其中收缩和扩展路径在每个分辨率上通过跳跃连接相互连接。编码器或解码器路径的每个分辨率由L连续的DiffiT块组成,其中包含所提出的时间依赖的自注意力模块。在每条路径的开始,对于编码器和解码器,使用一个卷积层来匹配特征图的数量。此外,卷积上采样或下采样层还用于每个分辨率之间的过渡。我们推测,这些卷积层的使用嵌入了可以进一步提高性能的归纳图像偏差。在本节的其余部
分,我们讨论了DiffiT Transformer块和提出的时间依赖自注意力机制。在构建u型去噪架构时,使用所提出的Transformer块作为残差单元。

DiffiT ResBlock 通过将所提出的DiffiT Transformer块
与额外的卷积层相结合,定义最终的残差单元:

潜空间

潜扩散模型被证明可以有效地生成高质量的大分辨率图像。在图4中,我们展示了隐DiffiT模型的架构。我们首先使用预训练的变分自编码器网络对图像进行编码,然后将特征图转换为不重叠的块并投影到新的嵌入空间。与DiT模型[52]类似,我们使用视觉transformer,没有上采样或下采样层,作为潜空间中的去噪网络。此外,还利用三通道无分类器指导来提高生成样本的质量。架构的最后一层是一个简单的线性层,用于对输出进行解码。

本文实验


DiffiT在CIFAR-
10数据集上取得了最先进的图像生成FID分数1.95

超 过 了EDM [34]和LSGM [69]等 最 先 进 的 扩 散 模
型 。 与 最 近 的 两 个 基 于vit的 扩 散 模 型 相 比 , 所
提出的DiffiT在CIFAR-10数据集上的FID分数明显优
于U-ViT [7]和GenViT [76]模 型 。 此 外 , 就FID分 数
而言,DiffiT在VP和VE训练配置方面明显优于EDM
[34]和ddpm++ [66]模型
。在图5中,我们对FFHQ-64数
据集上生成的图像进行了说明。

  • 在ImageNet-256数据集中,
    潜在DiffiT模型在FID分数方面优于MDT-G [21]、DiTXL/2-G [52]和StyleGAN-XL [61]等竞争方法,并设
    置了新的SOTA FID分数为1.73。在IS和sFID等其他
    指 标 方 面 , 潜DiffiT模 型 表 现 出 了 有 竞 争 力 的 性
    能 , 从 而 表 明 了 所 提 出 的 时 间 依 赖 自 注 意 力 的
    有 效 性 。
  • 在ImageNet-512数 据 集 中 , 隐DiffiT模 型
    在FID和Inception分数(IS)方面明显优于DiT-XL/2-G。
    尽管StyleGAN-XL [61]在FID和IS方面显示了更好的
    性能,但众所周知,基于gan的模型存在多样性低
    的问题,这些问题无法被FID分数捕获。这些问题
    反映在StyleGAN-XL在准确率和召回率方面的次优
    性能上。
  • 此外,在图6中,我们展示了在ImageNet-
    256和ImageNet-512数据集上生成的未策划图像的可视
    化。潜DiffiT模型能够在不同的类别中生成各种高质量
    的图像。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/707600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

坚持刷题|二叉树展开为链表

文章目录 题目考察点代码实现实现总结扩展问题用递归的方式实现在展开二叉树为链表的过程中,递归和迭代两种方法各有什么优缺点?可能的扩展问题 Hello,大家好,我是阿月。坚持刷题,老年痴呆追不上我,今天刷&…

LTD营销枢纽2023年度功能升级回顾

在过去的2023年,我们的团队致力于不断进步和创新。经过一年的不懈努力,我们共发布了50次的系统升级,引入了16种全新的解决方案与业务应用,并实施了1363项各类细致优化。 这些更新和改进不仅在我们的营销枢纽系统现有功能的基础上实…

35岁程序员,深入理解JVM的核心知识点

网络:分层模型、TCP、UDP、HTTP、HTTPS 分层模型 应用层:负责处理特定的应用程序细节,如 HTTP、FTP、DNS运输层:为两台主机提供端到端的基础通信,如 TCP、UDP网络层:控制分组传输、路由选择等&#xff0c…

【大数据架构(1)】Lambda Architecture – Realtime Data Processing 论文重点翻译

文章目录 1. INTRODUCTION2. LAMBDA ARCHITECTUREA) BATCH LAYERB) SPEED LAYERC) SERVICE LAYER 3. LIMITATIONS OF THE TRADITIONAL LAMBDAARCHITECTURE4. A PROPOSED SOLUTION1. 架构说明2. 前后架构改进对比 1. INTRODUCTION Lambda架构背后的需求是由于虽然MR能够处理大数…

SpringBoot+PDF.js实现按需分片加载预览(包含可运行示例源码)

SpringBootPDF.js实现按需分片加载预览 前言分片加载的效果前端项目前端项目结构前端核心代码前端项目运行 后端项目后端项目结构后端核心代码后端项目运行 项目运行效果首次访问分片加载 项目源码 前言 本文的解决方案旨在解决大体积PDF在线浏览加载缓慢、影响用户体验的难题…

Fabric V2.5 通用溯源系统——区块链部分设计

本节对Fabric V2.5 通用溯源系统的区块链部分做一个简单的介绍,包括目录结构、文件作用、设计思路。此节内容免费发布在TrueTechLabs Fabric学习交流QQ群。 购买专栏前请认真阅读:《Fabric项目学习笔记》专栏介绍 TrueTechLabs Fabric学习交流QQ群: 一、区块链部分文件目录简…

代码库管理工具Git介绍

阅读本文同时请参阅-----免费的Git图形界面工具sourceTree介绍 Git是一个分布式版本控制系统,它可以帮助开发者跟踪和管理代码历史。Git的命令行工具是使用Git的核心方式,虽然它可能看起来有些复杂,但是一旦掌握了基本命令,你…

【C++私房菜】序列式容器的迭代器失效问题

目录 一、list的迭代器失效 二、vector的迭代器失效 1、空间缩小操作 2、空间扩大操作 三、总结 在C中,当对容器进行插入或删除操作时,可能会导致迭代器失效的问题。所谓迭代器失效指的是,原先指向容器中某个元素的迭代器,在…

Retrofit核心原理

Retrofit是一个类型安全的HTTP客户端库,广泛用于Android和Java应用中,用于简化网络请求和响应的处理。本文将深入探讨Retrofit的核心原理,帮助开发者理解其背后的工作机制。 Retrofit简介 Retrofit是Square公司开发的一个开源库&#xff0c…

MWC 2024丨美格智能推出5G RedCap系列FWA解决方案,开启5G轻量化新天地

2月27日,在MWC 2024世界移动通信大会上,美格智能正式推出5G RedCap系列FWA解决方案。此系列解决方案具有低功耗、低成本等优势,可以显著降低5G应用复杂度,快速实现5G网络接入,提升FWA部署的经济效益。 RedCap技术带来了…

pclpy Ransac平面分割算法输出的索引从点云中提取点云的子集

pclpy Ransac平面分割算法输出的索引从点云中提取点云的子集 一、算法原理二、代码三、结果1.sor统计滤波2.Ransac内点分割平面3.Ransac外点分割平面 四、相关数据 一、算法原理 1、Ransac介绍 RANSAC(RAndom SAmple Consensus,随机采样一致)算法是从一组含有“外点”(outlier…

Flink CDC 提取记录变更时间作为事件时间和 Hudi 表的 precombine.field 以及1970-01-01 取值问题

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…

如何使用ArcGIS Pro为栅格图添加坐标信息

在某些时候,我们从网上获取的资源是一张普通的栅格图,没有任何的坐标信息,如果想要和带坐标信息的数据一起使用就需要先添加坐标信息,在GIS上,我们把这个过程叫做地理配准,这里为大家介绍一下地理配准的方法…

雾锁王国Enshrouded服务器CPU内存配置怎么选择?

雾锁王国/Enshrouded服务器CPU内存配置如何选择?阿里云服务器网aliyunfuwuqi.com建议选择8核32G配置,支持4人玩家畅玩,自带10M公网带宽,1个月90元,3个月271元,幻兽帕鲁服务器申请页面 https://t.aliyun.com…

通过shell编写内存监视的脚本来介绍一些基本shell脚本操作

目录 知识概览 总体脚本编写 date awk grep bc 知识概览 总体脚本编写 #!/bin/bash#定义日志的文件名和日期 cdate$(date %Y%m%d%H%M%S) logfile"/tmp/memlog_{$0}.log"#拿到ip ip_addr$(ip add|grep "ens33$"|awk {print $2})#总内存和使用的内存 m…

如何使用Fastapi上传文件?先从请求体数据讲起

文章目录 1、请求体数据2、form表单数据3、小文件上传1.单文件上传2.多文件上传 4、大文件上传1.单文件上传2.多文件上传 1、请求体数据 前面我们讲到,get请求中,我们将请求数据放在url中,其实是非常不安全的,我们更愿意将请求数…

第三百七十二回

文章目录 1. 概念介绍2. 实现方法2.1 maskFilter2.2 shader 3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"两种阴影效果"相关的内容,本章回中将介绍如何绘制阴影效果.闲话休提,让我们一起Talk Flutter吧。 1. 概…

java多线程并发实战,java高并发场景面试题

阶段一:筑基 Java基础掌握不牢,对于一个开发人员来说无疑是非常致命的。学习任何一个技术知识无疑不是从基础开始;在面试的时候,面试官无疑不是从基础开始拷问。 内容包括:Java概述、Java基本语法、Java 执行控制流程、…

html5盒子模型

1.边框的常用属性 border-color 属性 说明 示例 border-top-color 上边框颜色 border-top-color:#369; border-right-color 右边框颜色 border-right-color:#369; border-bottom-color 下边框颜色 border-bottom-color:#fae45b; border-left-color 左边框颜色…

java springmvc/springboot 项目通过HttpServletRequest对象获取请求体body工具类

请求 测试接口 获取到的 获取到打印出的json字符串里有空格这些,在json解析的时候正常解析为json对象了。 工具类代码 import lombok.extern.slf4j.Slf4j; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.we…