表征对齐在训练DiT模型中的重要性
Diffusion Models专栏文章汇总:入门与实战
前言:训练过DiT模型的读者们肯定有所体会,相比于UNet模型训练难度大了很多,模型不仅很难收敛,而且非常容易训崩,其中一个很重要的原因是没有进行表征对齐!这篇博客详细介绍表征对齐在训练DiT模型中的重要性。
目录
训练过程的问题
训练DiT模型为什么慢?
仅仅依赖"渲染"损失是不够的
多层DiT之间表征能力的区别
表征对齐的具体方法
相关资料
训练过程的问题
扩散模型虽然强大,但训练起来却是个噩梦。训练一个DiT/SiT模型需要700万次迭代,要跑好几周才能达到论文里报告的FID分数。
这简直是在考验研究者的耐心和计算资源!
训练DiT模型为什么慢?
-
扩散transformer 确实能学到不错的表征,而且生成效果越好,表征质量也越高。
-
但是,这些表征还是比不上像DINOv2、JEPA或MAE这些自监督学习方法得到的表征。
-
当我们测量扩散模型特征和DINOv2特征的对齐程度时,发现扩散模型在训练过程中确实在慢慢进步,但这个过程实在是太慢了。
仅仅依赖"渲染"损失是不够的
如果你只关注重建漂亮的像素,就无法过滤掉输入中的无关细节——而这恰恰是学习强大表征的关键。
看来,即使你的目标是生成好看的图像,你也需要先学习一个强大的表征,然后才能处理那些让图像看起来漂亮的细节。
多层DiT之间表征能力的区别
仅通过对齐前几个DiT块可以实现足够的表示对齐。反过来,这允许DiT的后续层专注于基于对齐表示捕获高频细节,进一步提高生成性能。
如下图,学习能力有一个峰值,在20层之后显著下降。
表征对齐的具体方法
REPA 通过最大化预训练表示 y∗ 和隐藏状态 ht 之间的补丁相似性来实现对齐:
最终的loss如下:
相关资料
- Paper: https://arxiv.org/abs/2410.06940
- Project page: https://sihyun.me/REPA/
- Code: https://github.com/sihyun-yu/REPA
相关文章:
表征对齐在训练DiT模型中的重要性
Diffusion Models专栏文章汇总:入门与实战 前言:训练过DiT模型的读者们肯定有所体会,相比于UNet模型训练难度大了很多,模型不仅很难收敛,而且非常容易训崩,其中一个很重要的原因是没有进行表征对齐…...
Qt中CMakeLists.txt解释大全
Qt从Qt5.15版本开始正式推荐使用CMake进行项目管理。 在Qt 5.15之前,虽然可以使用CMake进行构建,但Qt官方更推荐使用qmake。 然而,从Qt5.15开始,Qt官方正式推荐使用CMake作为主要的构建系统,并在Qt 6中进一步加强了…...
【在 PyTorch 中使用 tqdm 显示训练进度条,并解决常见错误TypeError: ‘module‘ object is not callable】
在 PyTorch 中使用 tqdm 显示训练进度条,并解决常见错误TypeError: module object is not callable 在进行深度学习模型训练时,尤其是在处理大规模数据时,实时了解训练过程中的进展是非常重要的。为了实现这一点,我们可以使用 tq…...
数据结构-堆的实现和应用
目录 1.堆的概念 2.堆的构建 3.堆的实现 4.堆的功能实现 4.1堆的初始化 4.2堆的销毁 4.3堆的插入 4.3.1向上调整 4.4堆的删除 4.4.1向下调整法 编辑4.5取堆顶 5. 向上调整法和向下调整法比较 6.堆的应用 6.1TOP-K问题 6.2TOP-K思路 6.2.1用前n个数据来建堆 6.…...
数据分析的尽头是web APP?
数据分析的尽头是web APP? 在做了一些数据分析的项目,也制作了一些数据分析相关的web APP之后,总结自己的一些想法和大家分享。 1.web APP是呈现数据分析结果的另外一种形式。 数据分析常见的结果是数据分析报告,可以是PPT或者…...
YOLO系列论文综述(从YOLOv1到YOLOv11)【第3篇:YOLOv1——YOLO的开山之作】
YOLOv1 1 摘要2 YOLO: You Only Look Once2.1 如何工作2.2 网络架构2.3 训练2.4 优缺点 YOLO系列博文: 【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇:YOLO系列论文、代码和主要优缺点汇总】 ——————————…...
容器和它的隔离机制
什么是容器和它的隔离机制? 容器 是一种轻量化的虚拟化技术,它允许多个应用程序共享同一个操作系统(OS)内核,同时为每个应用程序提供自己的运行环境。容器通过利用 Linux 的内核功能(如 Namespaces 和 Cgr…...
【数据结构与算法】排序算法总结:冒泡 / 快排 / 直接插入 / 希尔 / 简单选择 / 堆排序 / 归并排序
1 排序 1.1 冒泡 内排序的交换排序类别 1.1.1 普通实现 public class BubbleSort {/*** 基本的 冒泡排序*/public static void bubbleSort(int[] srcArray) {int i,j; // 用于存放数组下标int temp 0; // 用于交换数值时临时存放值for(i0;i<srcArray.length-1;i){// j …...
Windows Serv 2019 虚拟机 安装Oracle19c,图文详情(超详细)
1、下载安装文件 Oracle官网下载直链:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#db_ee 夸克网盘下载:https://pan.quark.cn/s/1460a663ee83 2、新建 Windows Server 2019 虚拟机 (超详细&a…...
数字孪生开发之 Three.js 插件资源库(2)
在当今数字化快速发展的时代,数字孪生技术正逐渐成为各个领域的关键技术之一。它通过创建物理实体的虚拟副本,实现对实体的实时监测、模拟和优化,为企业和组织带来了诸多好处,如提高生产效率、降低成本、改进产品质量等。然而&…...
小米C++ 面试题及参考答案下(120道面试题覆盖各种类型八股文)
指针和引用的区别?怎么实现的? 指针和引用有以下一些主要区别。 从概念上来说,指针是一个变量,它存储的是另一个变量的地址。可以通过指针来间接访问所指向的变量。例如,我们定义一个整型指针int *p;,它可以指向一个整型变量的内存地址。而引用是一个别名,它必须在定义的…...
OpenOCD之J-Link下载
NOTE:此篇文章由笔者的 VSCode编辑GCC for ARM交叉编译工具链Makefile构建OpenOCD调试(基于STM32的标准库)派生而来。 1.下载USB Dirver Tool.exe,选择J-Link dirver,替换成WinUSB驱动。(⭐USB Dirver Tool…...
华为云云连接+squid进行正向代理上网冲浪
1 概述 Squid是一个高性能的代理缓存服务器,主要用于缓冲Internet数据。它支持多种协议,包括FTP、gopher、HTTPS和HTTP。Squid通过一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求,这使得它在处理请求时具有较高的效率。…...
情绪识别项目
文章目录 1、mp4s文件转mp3文件2、Audition下载3、Audition安装4、Audition使用: 1、mp4s文件转mp3文件 在线转:Convert audio to MP3(https://audio.online-convert.com/convert-to-mp3) 2、Audition下载 Audition CC2019/64位…...
【RISC-V CPU debug 专栏 2.2 -- Hart DM States】
文章目录 Hart DM StatesHart 的 DM 状态1. 不存在(Non-existent)2. 不可用(Unavailable)3. 运行(Running)4. 暂停(Halted)状态转换与复位行为状态指示信号Hart DM States 在 RISC-V 调试架构中,每个可以被选择的硬件线程(hart)处于以下四种调试模块(DM)状态之一…...
从零样本到少样本学习:一文读懂 Zero-shot、One-shot 和 Few-shot 的核心原理与应用!
爆款标题: 《从零样本到少样本学习:一文读懂 Zero-shot、One-shot 和 Few-shot 的核心原理与应用!》 正文: 在自然语言处理(NLP)领域,Zero-shot、One-shot 和 Few-shot 学习已经成为衡量大语言…...
【LC】3101. 交替子数组计数
题目描述: 给你一个二进制数组nums 。如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况,我们称这样的子数组为 交替子数组 。返回数组 nums 中交替子数组的数量。 示例 1: 输入: nums [0,1,1,1] 输出: 5 …...
如何构建SAAS项目
在后台使用JDBC方式动态创建用户输入的数据库信息(库名、地址、用户名、密码) 执行预先写好的sql文件(如mybatis的scriptRunner)执行建表语句及插入基础数据(管理员用户、普通用户)...
树莓派搭建NextCloud:给数据一个安全的家
前言 NAS有很多方案,常见的有 Nextcloud、Seafile、iStoreOS、Synology、ownCloud 和 OpenMediaVault ,以下是他们的特点: 1. Nextcloud 优势: 功能全面:支持文件同步、共享、在线文档编辑、视频会议、日历、联系人…...
深入解读 MongoDB 查询耗时:Execution 和 Fetching 阶段详解
在使用 MongoDB 时,查询性能的分析与优化是开发者关注的重点。MongoDB 的查询过程通常分为两个主要阶段:Execution(执行阶段)和Fetching(拉取阶段)。每个阶段的耗时代表不同的性能瓶颈,优化思路…...
frida_hook_dlopen(当年到lib目录下找发现一个so都没有,hook下dlopen)
Frida 脚本用于拦截 Android 应用程序中的 dlopen 和 android_dlopen_ext 函数。这两个函数用于动态加载共享库,脚本通过拦截这些函数的调用来记录加载的库的路径。 代码分析 var dlopen Module.findExportByName(null, "dlopen"); // 6.0 var android…...
Zero to JupyterHub with Kubernetes中篇 - Kubernetes 常规使用记录
前言:纯个人记录使用。 搭建 Zero to JupyterHub with Kubernetes 上篇 - Kubernetes 离线二进制部署。搭建 Zero to JupyterHub with Kubernetes 中篇 - Kubernetes 常规使用记录。搭建 Zero to JupyterHub with Kubernetes 下篇 - Jupyterhub on k8s。 参考&…...
WordCloud去掉停用词(fit_words+generate)的2种用法
-------------词云图集合------------- WordCloud去掉停用词(fit_wordsgenerate)的2种用法 通过词频来绘制词云图(jiebaWordCloud) Python教程95:去掉停用词词频统计jieba.tokenize示例用法 将进酒—李白process_t…...
Python 中如何处理异常?
在Python中,异常处理是一种重要的编程技术,它允许开发者优雅地处理程序运行过程中出现的错误或异常情况,而不是让程序直接崩溃。 通过异常处理,我们可以使程序更加健壮、用户友好。 异常处理的基本结构 Python中最基本的异常处…...
C++——多态(下)
目录 引言 多态 4.多态的原理 4.1 虚函数表指针 4.2 多态的原理 5.单继承和多继承关系的虚函数表 5.1 单继承中的虚函数表 5.2 多继承中的虚函数表 结束语 引言 接下来我们继续学习多态。 没有阅读多态(上)的可以点击下面的链接哦~ C——多态…...
qsort函数详解+代码展示
文章目录 概要系列文章目录前言(1) 定义(2) 使用(举例子 上代码)1、定义数组:2、定义比较函数:3、调用 qsort:4、输出结果: (3) 注意事项 小结 概要 本篇博客将详细地介绍qsort排序函数,&#x…...
leetcode hot100【LeetCode 136. 只出现一次的数字】java实现
LeetCode 136. 只出现一次的数字 题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 …...
(免费送源码)计算机毕业设计原创定制:Java+ssm+JSP+Ajax SSM棕榈校园论坛的开发
摘要 随着计算机科学技术的高速发展,计算机成了人们日常生活的必需品,从而也带动了一系列与此相关产业,是人们的生活发生了翻天覆地的变化,而网络化的出现也在改变着人们传统的生活方式,包括工作,学习,社交…...
对抗攻击算法:FGSM和PGD
FGSM 传送门 FGSM 利用了梯度上升的思想,通过损失函数相对于输入图像的梯度来找到 最容易 迷惑网络的方向,并沿着这个方向对图像进行微小的扰动。 FGSM 的基本想法是,沿着这个梯度的符号方向对图像进行微调,以最大化损失函数。具…...
【八股文】小米
文章目录 一、vector 和 list 的区别?二、include 双引号和尖括号的区别?三、set 的底层数据结构?四、set 和 multiset 的区别?五、map 和 unordered_map 的区别?六、虚函数和纯虚函数的区别?七、extern C …...
协会工作方案网站建设困难/中国站长之家
hibernate中懒加载和急加载的区别? 1、fetch FetchType.LAZY ----懒加载 在加载一个实体的时候,不会马上从数据库中加载,即从数据库中加载到内存中。 2、fetch FetchType.EAGER ----急加载 在加载一个实体时,会立即从数据库中查…...
中山网站建设文化策划书/nba东西部最新排名
一、视图语法:create view 视图名称 as 子查询例:创建一视图,包含全部的20部门的雇员信息(雇员编号,姓名,工作,雇佣日期)create view emp20 as select empno,ename,job,hiredate from emp wheredeptno 20;…...
推荐的网站/百度浏览器网站入口
向大家推荐一个UML工具,这个工具的名字叫Visual Paradigm for UML,是一个获得过Jolt大奖(软件行业的奥斯卡!)的工具。这个工具提供Community Edition, 这一版本可以免费使用一个月。其下载地址是http://www.visual-paradigm.com/p…...
网站开发有什么注意的/聊城网站推广的公司
可以在vs上调试lua的插件,就是vslua。vslua不只能调试独立的lua脚本,而且还能调试luabind,luaplus等在C中调用的lua函数。只需将vslua的编译器设置成带有lua导出符号的dll,就可以用这个dll进行调试lua了,相当方便。这样就可以抛弃…...
隐藏网站开发语言/写文章免费的软件
全国各地交通管理部门与中国气象局公共气象服务中心、高德地图联合发布了《2018年春运安全出行指南》,依据历年春运期间高德地图交通大数据,融合高德地图位置大数据预测城市交通拥堵趋势以及出行趋势,为广大群众节假日出行提供科学的参考建议…...
网站开发数据如何转化/百度关键词热度
1、深度总结引用一位网友的话,说的非常好,如果别人问你static的作用;如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的;如果是说 可以构成 静态代码块,那别人认为你还可以; 如果你说可以构成 静态…...