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

扩散模型学习

第一章

1.1

的原理

给定一批训练数据X,假设其服从某种复杂的真实 分布p(x),则给定的训练数据可视为从该分布中采样的观测样本x。

生成模型就是估计训练数据的真实分布,使得估计的分布q(x)和真实分布p(x)差距尽可能能的小。

使得所有训练数据样本采样自q(x)的概率最大。

DDPM假设扩散过程是马尔可夫过程(即每一个时间步状态的概率分布仅由上一个时间步状态的概率分布加上当前时间步的高斯噪声得到),以及假设扩散过程的逆过程是高斯分布等

DDPM推导见DDPM推导.pdf

1.2 扩散模型的发展

论 文 “Score-Based Generative Modeling through Stochastic Differential Equations”证明了DDPM的采样过程是更普遍的随机微分方程,因此只要能够更离散化地求解该随机微分方程,就可以将1000步的采样过程缩减至50步、20步甚至更少的步数。

在这里插入图片描述

很多基于现有的扩散模型进行“再学习”的技术自然而然地涌现,这也使得个人在消费级显卡上训练自己的扩散模型成为可能。

DreamBooth可以实现使用现有模型再学习到指定主体图像的功 能,只要通过少量训练将主体绑定到唯一的文本标识符后,就可以通过输入文本提示语来控制自己的主体以生成不同的图像。

在这里插入图片描述

LoRA可以实现使用现有模型再学习到自己指定数据集风格或人物 的功能,并且还能够将其融入现有的图像生成中。

ControlNet可以再学习到更多模态的信息,并利用分割图、边缘 图等功能更精细地控制图像的生成。

1.3 扩散模型的应用
1.3.1 计算机视觉
  • 图像分割与目标检测
    Meta AI 的SegDiff分割扩散模型可以生成分割Mask图(如图1-14所示),检测扩散模型DiffusionDet同样可以端到端地从随机矩形框逐步生成检测框(如图1-15所示)。
    不过,扩散模型仍然存在生成速度慢的问题,在应用于一些需要实时检测的场景时还需继续优化。

在这里插入图片描述

  • 图像超分辨率
    图像超分辨率是一项能够将低分辨率图像重建 为高分辨率图像,同时保证图像布局连贯的技术。
    CDM(Cascaded Diffusion Model,级联扩散模型)通过采用串联多个扩散模型的方 式,分级式地逐步放大分辨率,实现了图像超分辨率。
    在这里插入图片描述

  • 图像修复、图像翻译和图像编辑

图像修复、图像翻译和图像编辑是对图像的部分或全部区域执行的操作,包括缺失部分修补、风 格迁移、内容替换等。Palette是一个集成了图像修复、图像翻译和图像编辑等功能的扩散模型,它可以在一个模型中完成不同的图像级任务。

在这里插入图片描述

1.3.2 时序数据预测

时序数据预测旨在根据历史观测数据预测未来可能出现的数据。
TimeGrad是首个在多元概率时序数据预测任务中加入扩散思想 的自回归模型。
为了将扩散过程添加到历史数据中,TimeGrad首先 使用RNN(Recurrent Neural Network,循环神经网络)处理历史 数据并保存到隐空间中,然后对历史数据添加噪声以实现扩散过程, 由此处理数千维度的多元数据并完成预测任务。

在这里插入图片描述

1.3.3 自然语言

只要将自然语言类的句子分词并转换为词向量之后,就可以通过扩散的方法来学 习自然语言的语句生成,进而完成自然语言领域一些更复杂的任务, 如语言翻译、问答对话、搜索补全、情感分析、文章续写等。
Diffusion-LM是首个将扩散模型应用到自然语言领域的扩散语言模型。该模型旨在解决如何将连续的扩散过程应用到离散的非连续化文本的问题,由此实现语言类的高细粒度可控生成。

1.3.4 基于文本的多模态
  • 文本生成图像
    文本生成图像是扩散模型最流行、最成熟的应 用,输入文本提示语或仅仅输入几个词,扩散模型就能根据文字描述 生成对应的图片。
    DALLE-2、Imagen以及完全开源的Stable Diffusion
  • 文本生成视频
    文本生成视频扩散模型能够将输入的文本提示语转换为相应的视频流。
    不同的是,视频的前 后帧需要保持极佳的连贯性。
    Meta AI的Make-A-Video以及能够精细控制视频 生成的ControlNet Video。
  • 文本生成3D
    3D物体的表征有多种方式,如 点云、网格、NeRF等。
    DiffRF提出了通过扩散的方法实现从文本生成3D辐射场的扩散模型,3DFuse实现了基于二维图像生成对应的3D点云。
1.3.5 AI基础科学

SMCDiff创建了一种扩散模型,该扩散模型可以根据给定的模体结构生成多样化的支架蛋白质。
CDVAE则提出了一种扩散晶体变分自编码器模 型,旨在生成和优化具有固定周期性原子结构的材料。

第二章

Gradio是一个开源的Python库,由Hugging Face推出,用于构建机器学习和数据科学演示以及Web应用。
借助Gradio,你可以快速 为机器学习模型或数据科学工作流创建美观的用户界面,让用户能够 通过浏览器拖放自己的图片、粘贴文本、录制自己的声音并与你的演 示互动。交互式应用。
![[Pasted image 20231015210739.png]]

  • 使用pip安装Gradio

  • 以经典的“Hello World!”程序为例,输入代码。
    在这里插入图片描述

  • 使用gradio命令运行Gradio应用脚本
    在这里插入图片描述

“Hello World!”程序代码,可以看出,我们 调用了gr.Interface接口。
fn:目标函数的名称(我们将要为该目标函数创建用户界 面)。
inputs:用于输入的组件(如"text" “image"或"audio”)。
outputs:用于输出的组件(如"text" “image"或"label”)。

相关文章:

扩散模型学习

第一章 1.1 的原理 给定一批训练数据X,假设其服从某种复杂的真实 分布p(x),则给定的训练数据可视为从该分布中采样的观测样本x。 生成模型就是估计训练数据的真实分布,使得估计的分布q(x)和真实分布p(x)差距尽可能能的小。 使得所有训练…...

解决方法:从客户端(---<A href=“http://l...“)中检测到有潜在危险的 Request.Form 值。

从客户端(-----<A href"http://l...")中检测到有潜在危险的 Request.Form 值。 解决方法&#xff1a;应该是不同的.net Framework版本对代码的校验不同&#xff0c;造成在高版本操作系统&#xff08;即高.net Framework版本校验&#xff09;不兼容&#xff0c;可…...

Linux shell编程学习笔记14:编写和运行第一个shell脚本hello world!

* 20231020 写这篇博文断断续续花了好几天&#xff0c;为了说明不同shell在执行同一脚本文件时的差别&#xff0c;我分别在csdn提供线上Linux环境 &#xff08;使用的shell是zsh&#xff09;和自己的电脑上&#xff08;使用的shell是bash&#xff09;做测试。功夫不负有心人&am…...

隐式类型转换

什么是隐式类型转换&#xff0c;多参数的造函数隐式类型转换&#xff0c;和单参数的构造函数隐式类型转换有什么区别 C中有三种主要的隐式类型转换&#xff1a; 1:多参数的构造函数隐式类型转换 2:单参数的构造函数隐式类型转换 3:成员函数隐式类型转换。…...

单例模式:饿汉式、懒汉式

一、单例模式 定义&#xff1a;一个类中的对象只能有一个&#xff0c;它在内存中只会创建一次对象的设计模式。 用法&#xff1a;在程序中如果多次用到同一个类中的方法进行操作时&#xff0c;在使用时就会创建多个对象。为了防止频繁创建对象造成内存资源浪费&#xff0c;就可…...

“人间烟火”背后,长沙招商引资再出圈

连续多年&#xff0c;长沙荣膺全国最具幸福感城市。同时&#xff0c;长沙也被誉为“中部崛起的引擎城市”。长沙不仅有网红城市的人间烟火气&#xff0c;更以创新的精神&#xff0c;优质的营商环境&#xff0c;高效的政府服务&#xff0c;丰富的人才资源和深厚的产业基础&#…...

操作系统【OS】中断和异常

异常&#xff08;内中断&#xff09; 中断&#xff08;外中断&#xff09; 基本概念 由CPU执行指令内部产生的事件内中断都是不可屏蔽中断&#xff0c;一旦出现&#xff0c;就要立即处理。 由来自CPU外部的设备发出的中断请求&#xff08;常用于输入输出&#xff09;典型的由…...

[AutoSAR系列] 1.1 AutoSar 发展历史

AUTOSAR,全称为Automotive Open System Architecture,即汽车开放系统架构。 AutoSar 是一项开源的汽车软件标准,旨在提高汽车电子系统的互操作性和可重用性。AutoSar 成员通常是汽车制造商、电子元件制造商、软件供应商和工具供应商等公司,他们在共同开发和推进 AutoSar 标…...

【vscode编辑器插件】前端 php unity自用插件分享

文章目录 一篇一句前言前端vuegitphpunity后端其他待续完结 一篇一句 “思考是最困难的工作&#xff0c;这也许是为什么很少有人这样做。” - 亨利福特&#xff08;Henry Ford&#xff09; 前言 无论是什么语言&#xff0c;我都会选择使用vscode进行开发&#xff0c;我愿称v…...

【企业级SpringBoot单体项目模板 】—— 项目代码管理

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;SpringBoot项目模版、企业级、模版、代码管理☀️每日 一言&#xff1a;生命力顽强的种子&#xff0c;从不对瘠土唱诅咒的歌。 文章目录 一、第一种&#xff1a;先创建仓库1.1 创建仓库1.2 clone…...

Python读取Excel文件中指定的列数并生成CSV文件

0x00 安装Pandas和OpenPyXL pip install pandaspip install openpyxl0x01 Encoding import os import pandas as pd import openpyxl from openpyxl import load_workbook import csvdef write_dict_to_csv(dict_data, fileName):df pd.DataFrame.from_dict(dict_data)# 将D…...

MySQl有哪些索引(种类)?索引特点?为什么要使用索引?

普通索引&#xff1a;仅加速查询唯一索引&#xff1a;加速查询 列值唯一&#xff08;可以有null&#xff09;主键索引&#xff1a;加速查询 列值唯一&#xff08;不可以有null&#xff09; 表中只有一个组合索引&#xff1a;多列值组成一个索引&#xff0c;专门用于组合搜索&…...

49数码论坛系统设计与实现

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…...

蓝桥杯每日一题2023.10.19

题目描述 完全二叉树的权值 - 蓝桥云课 (lanqiao.cn) 题目分析 我们以每一个节点的坐标来将这一深度的权值之和相加从而算出权值和 要清楚每一个深度的其实节点和末尾节点&#xff0c;使用双指针将这个深度节点的权值和计算出来&#xff0c;记录所 需要的深度即可 #includ…...

NIO IN:技术蔚来的首次「大阅兵」

宝山&#xff0c;上海第一钢铁厂旧址。 上周&#xff0c;蔚来在这里点亮金色炉台&#xff0c;2500 立方米高炉&#xff0c;浓重的工业气质与古典凝重的光影交织&#xff0c;蔚来 NIO IN 用科技的进步呼应那个火红的年代。 这是蔚来第一次开科技发布会&#xff0c;为了全方位展…...

Android推送问题排查

针对MobPush智能推送服务在使用过程中可能出现的问题&#xff0c;本文为各位开发者们带来了针对MobPush安卓端推送问题的解决办法。 TCP在线推送排查 排查TCP在线收不到推送时&#xff0c;我们先通过客户端的RegistrationId接口获取设备的唯一标识 示例&#xff1a; MobPush…...

轻量级导出 Excel 标准格式

一般业务系统中都有导出到 Excel 功能&#xff0c;其实质就是把数据库里面一条条记录转换到 Excel 文件上。Java 常用的第三方类库有 Apache POI 和阿里巴巴开源的 EasyExcel 等。另外也有通过 Web 模板技术渲染 Excel 文件导出&#xff0c;这实质是 MVC 模式的延伸&#xff0c…...

蓝桥杯 (年号字串 C++)

思路&#xff1a; 1、看成10进制转化成26进制 。 2、A表示1、B表示2。以此类推&#xff0c;Z表示26. 代码&#xff1a; #include <iostream> using namespace std; int main() {char str[10]; int sum 2019, n, i 0; while (sum > 0) {str[i] sum % 26 64;sum / …...

软件测试01

一、认识软件及测试 1、什么是软件 控制计算机硬件工作的工具 2、软件的基本组成 页面客户端------请求----->代码服务器-------请求------>数据服务器 3、软件产生过程 需求产生------->需求文档------->设计效果图------->产品开发-------->产品测试 …...

【IBIS 模型与仿真 - IBISWriter and Write_IBIS】

本文将介绍如何从用户设计中编写自定义IBIS模型。 本文是 SelectIO 解决方案中心&#xff08;Xilinx 答复 50924&#xff09;的设计助手部分&#xff08;Xilinx 答复 50926&#xff09;的一部分。 原文链接&#xff1a;https://support.xilinx.com/s/article/50957?languagee…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...