【Difussion Model】理解和编程

news2025/1/11 15:04:23

目录

  • 理论
    • 框架
    • text-to-imgae
      • decoder
      • generation model
      • clip的原理
    • FID指标:评估图像生成的好坏
    • 数学原理

理论

框架

不断的进行去噪,并且在这个过程中,step也作为“去噪模型(其实就是扩散模型)”的输入:
在这里插入图片描述
denoise 模型的内部结构长这样下图这样,他能够产生一张噪声,然后原始图像减去这个噪声,就能够得到更清楚的图像(去噪后的图像)了:

在这里插入图片描述

为什么denoise 模型不直接对图片进行去噪,而是其内部的 noise predicator产生一个噪声图片?因为难度不一样,产生一张噪声要容易得多。
既然要其生成的是一张噪声,那么也需要有ground truth 的噪声,来进行该模型的训练:
在这里插入图片描述
每一步的噪声的 ground truth 怎么来?——先加噪,然后记录下每个step所添加的噪声就是ground truth:

在这里插入图片描述

text-to-imgae

如果是这类模型,则每次noise predictor还需要添加一样的文字。
在这里插入图片描述
在这里插入图片描述
text-image DM模型的整体框架,需要依赖encoder、decoder等:
在这里插入图片描述
下面介绍encder、generation model、decoder,已经它们分别是怎么训练的。

decoder

decoder的训练方法比较简单,中间一个缩小后的图片,然后用AE的训练方式即可。
在这里插入图片描述

generation model

generation model这里就类似扩散模型。
在这里插入图片描述
在每一个step中,noise predictor的输入是图像的representation、文字的represenation、当前step。输出得到该step添加的噪声。
在这里插入图片描述
经历若干个去噪步骤,再输入到decoder,基本就可以得到生成的大图了。
在这里插入图片描述

clip的原理

让两个encoder输出的向量相近:
在这里插入图片描述

FID指标:评估图像生成的好坏

依赖一个retrain好的CNN模型,输入一个生成的图片,得到representation,然后比较和真实影像的representation的进行比较:
在这里插入图片描述
两个分布(假设是高斯分布)越接近越好。

数学原理

先区分下VAE和扩散模型的区别:
在这里插入图片描述
扩散模型加噪的过程中,不需要训练一个encoder。

算法如下:
在这里插入图片描述

红色框框做的是把原始图像和噪声进行加权相加,

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

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

相关文章

iOS应用上架详细图文教程

App Store作为苹果官方的应用商店,审核严格周期长一直让用户头疼不已,很多app都“死”在了审核这一关,那我们就要放弃iOS用户了吗?当然不是!本期我们从iOS app上架流程开始梳理,详细了解下iOS app上架的那些…

项目管理与任务管理:关键的差异和共同点

在商业世界中,了解项目和任务之间的区别对于有效的工作流程管理至关重要。项目和任务经常被混淆,但它们需要不同的技术和方法来有效管理。本文将比较和对比项目和任务,强调它们的主要区别和各自带来的独特挑战。 项目与任务管理的主要区别在…

三分钟了解Spring Boot 的启动流程

👏作者简介:大家好,我是冰点,从业11年,目前在物流独角兽企业从事技术方面工作,🍂博主正在努力完成2023计划中:以梦为马,扬帆起航,2023追梦人📝联系…

MySQL - 分库分表、MyCat配置、分片规则

文章目录 分库分表一、概述1.1 分库分表原因1.2 拆分策略1.2.1 垂直拆分1.2.2 水平拆分 1.3 实现技术 二、安装Mycat2.1 介绍2.2 安装 三、MyCat入门3.1 环境准备3.2 分片配置3.2.1 schema.xml3.2.2 server.xml 3.3 启动测试 四、MyCat配置4.1 schema.xml 配置文件4.1.1 schema…

你知道探针台的功能有哪些吗

探针台的主要用途是为半导体芯片的电参数测试提供一个测试平台,探针台可吸附多种规格芯片,并提供多个可调测试针以及探针座,配合测量仪器可完成集成电路的电压、电流、电阻以及电容电压特性曲线等参数检测。适用于对芯片进行科研分析&#xf…

你还在用 top?这有几个更牛逼的选择

简介 作为一个运维人员,很多时候需要知道服务器的实时情况,比如 Windows 系统的任务管理器,下面我描述的是基于 Linux 系统,你可能听说最流行的就是‘top’【基于终端的系统监视工具】。 top:实时程序可帮助显示所有正…

< axios封装篇 :一文看懂Axios + ElementUi 配置全局遮罩loading >

axios封装篇 :一文看懂axios配置全局遮罩loading 👉 实现原理👉 Axios封装> loading配置文件> axios封装文件 往期内容 💨 今天这篇文章,主要是用于补充上次的 axios封装相关文章,用于补充全局配置接…

拿捏 二叉树前序遍历、中序遍历、后序遍历非递归实现!

二叉树前序遍历非递归实现 在不使用递归的方式遍历二叉树时,我们可以使用一个栈模拟递归的机制。二叉树的前序遍历顺序是:根 → 左子树 → 右子树,我们可以先将二叉树的左路结点入栈,在入栈的同时便对其进行访问,此时就…

安装Docker使用Docker安装部署MySQL和Redis

Docker安装 sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine sudo yum remove -y yum-utils sudo yum install -y yum-utils sudo yum-config-manager --add-re…

【企业化架构部署】Nginx优化与防盗链

文章目录 引言一、Nginx 服务优化1. 隐藏版本号1.1 网页查看 Nginx 版本1.2 命令查看 Nginx 版本1.3 修改配置文件方式1.4 修改源码文件,重新编译安装 2. 修改 Nginx 用户与组2.1 编译安装时指定2.2 修改配置文件方式 3. 配置网页缓存时间4. 日志分割5. 设置连接超时…

(3)NUC980 kenerl编译

解压 用到的配置文件位置: /NUC980-linux-4.4.y-master/arch/arm/configs/nuc980_defconfig 执行: 编译linux内核源码。了解其 配置文件在 arch/arm/configs/nuc980_defconfig (1) make nuc980_defconfig 载入配置文件 (2) make menuconfig --->Devi…

ImageNet Classification with Deep ConvolutionalNeural Networks

AlexNet网络实现:https://blog.csdn.net/weixin_43912621/article/details/127757396 ImageNet Classification with Deep ConvolutionalNeural Networks Abstract We trained a large, deep convolutional neural network to classify the 1.2 million high-res…

面试官问,Vue.js和React.js之间有什么区别

Vue.js和React.js的区别 Vue.js和React.js都是流行的前端框架,它们都采用了组件化的开发方式,可以将大型应用程序分解为多个小组件,从而更加方便地管理和维护应用程序。尽管Vue.js和React.js在许多方面都有相似之处,但它们之间仍…

flutter android 多渠道打包 --dart-define

多渠道打包需求很普遍,甚至开发环境下 也需要不同环境测试,提供不同名称或者 不同包名的APK(方便测试 防止覆盖) 纯 Android 多渠道思路: 配置 .gradle 中的 buildTypes, 但是这个思路在 Flutter 中有坑&am…

【我是小狼君】【Unity学习路径】【一篇就够】

1.前言 这个文章小狼君做一个Unity3D的学习总结,是我当下已经掌握或者未来要学习的技术栈或者技术路线,也刚好帮助后来的小伙伴们有一个方向,文章持续更新,以后的文章也都会在这里有记录。 2.Unity 相关网站 Unity中国官网&…

Java --- springboot3之web的自动配置

目录 一、自动配置 二、默认效果 一、自动配置 1、导入web的pom依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> 2、引入了 autoconfigure功能 3、Enable…

【Java入门】长达近万字来讲解逻辑控制

前言 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff0c;喜爱音乐的一位博主。 &#x1f4d7;本文收录于Java入门篇系列&#xff0c;该专栏主要讲解&#xff1a;什么是java、java的数据类型与变…

CMake String函数:如何巧妙地在cmake中操作字符串

CMake String&#xff1a;从基础操作到高级应用的全面探索 1. CMake String的基本操作&#xff08;Basic Operations of CMake String&#xff09;1.1 字符串创建与赋值&#xff08;Creating and Assigning Strings&#xff09;1.2 字符串连接&#xff08;String Concatenation…

海汽集团:业财共享服务中心建设推进集团数字治理

随着大数据时代的到来&#xff0c;数字化、信息化的财务管理方式应运而生。建立财务共享服务中心&#xff0c;走向业财一体化&#xff0c;已成为企业财务管理转型的必然趋势。 海汽集团作为全国唯一一家具有全省性客运网络的道路运输企业、海南道路运输业头部企业&#xff0c;…

【定时任务】Java 中 8 种定时任务

一、单机定时任务 1、Timer java.util.Timer 类是 JDK1.3 专门提供的定时器工具&#xff0c;用来在执行指定任务&#xff0c;需要跟 TimerTask 一起配合使用 public class Timer {private final TaskQueue queue new TaskQueue();private final TimerThread thread new Tim…