Dreambooth工作原理

什么是Dreambooth

中文名:梦想亭。

Dreambooth 由 Google 研究团队于 2022 年发布,是一种通过向模型注入自定义主题来微调扩散模型(如稳定扩散)的技术。
所谓自定义主体,就是一张照片,但是照片主体要鲜明。比如一张小狗狗照片,那么狗和背景要有很高的区分度。

在这里插入图片描述

官方给出的一个例子:左边是三张小狗照片,通过dreamboothed 模型后,就能生成右边不同的照片。

小节下:就是使用少量的照片,给到dreamboothed 模型,dreamboothed 模型就能生成出风格不同的照片来。

为什么不直接训练照片呢?

为什么不直接使用这些照片来训练模型呢?因为少量的照片去训练,会造成过拟合语言漂移的问题。

语言漂移 (Language drift)

用一个成语来形容它:流变不居

“Language drift”(语言漂移)是指在机器学习中,训练模型的语言或数据分布与实际应用环境中的语言或数据分布之间的差异或变化。这种差异可能会导致模型在实际应用中表现不佳。

具体来说,语言漂移可能出现在以下情况:

  1. 时间漂移(Temporal Drift):语言随着时间的推移而变化。例如,社交媒体上的流行词汇、俚语或新兴语言可能会不断变化,而训练模型的数据可能是以前的数据,无法跟上最新的语言趋势。

  2. 领域漂移(Domain Drift):语言在不同领域之间可能有差异。模型在一个领域中训练,但在另一个领域中使用时,语言和术语可能不同,导致性能下降。

  3. 地理漂移(Geographical Drift):不同地理位置的语言和方言差异也可能导致漂移。一个地区的特定用语可能在另一个地区无法理解。

为了应对语言漂移,我们通常需要不断更新和微调模型,使用最新的数据以及适应特定领域或地理位置的语言变化。这有助于确保模型在实际应用中保持准确性和效用。

过拟合(Overfitting)

或者叫:过度拟合。

我先用一个成语来形容过拟合:墨守成规

过拟合(Overfitting)是指在机器学习中,模型过度适应训练数据,导致在测试数据上表现不佳的现象。这通常发生在模型变得过于复杂或在训练数据相对较少的情况下。

过拟合的原因:

  1. 模型复杂度过高:当模型具有太多参数或太多层,它可以学会在训练数据上几乎完美匹配每个样本,但这不代表它在新数据上泛化良好。

  2. 训练数据不足:如果可用于训练的数据量有限,模型可能会记住训练数据中的噪声,而不是学习通用规律。

过拟合的表现:

  1. 在训练数据上表现很好,误差很低,但在测试数据上表现糟糕。

  2. 模型的预测波动很大,对新数据敏感。

应对过拟合的方法:

  1. 数据扩充:增加训练数据的数量和多样性,有助于模型更好地泛化。

  2. 减小模型复杂度:减少模型中的参数数量或层级,以降低模型的复杂性。

  3. 来限制参数的大小,减少过拟合的风险。

  4. 早停:在训练过程中监视模型在验证数据上的性能,一旦性能开始下降,就停止训练,以防止过拟合。

Dreambooth 如何解决这些问题呢?

  1. 先给照片的主体取个个性化或者说具有标识性的名字。比如,狗的名字叫:Devora。
  2. 分类的预先保留:意思就是,Devora是啥呢?它是条狗,所以它的类目,就是Dog。

具体怎么做呢?

Dreambooth 的训练

我们需要三样东西:

  1. 一些自定义图像:主体鲜明的照片
  2. 唯一标识符(unique identifier)
  3. 一个分类名(class name)

在上面的例子中。唯一标识符是 Devora。分类就是狗。

然后你需要构建你的 实例提示

a photo of [unique identifier] [class name]

例如:a photo of Devora dog

和一个类提示

a photo of [class name]

比如: a photo of a dog

总结

Dreambooth是类似LoRA 模型。可以对照片的主体、风格、样式,进行微调的模型。
不过据说没有LoRA模型好,LoRA可是直接对交叉注意力层进行训练调整的。

参考地址:

How to use Dreambooth to put anything in Stable Diffusion (Colab notebook)

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

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

相关文章

idea启动vue项目:Error:0308010C:digital envelope routines::unsupported

此问题是因为Node.js的版本原因,此处安装的Node.js是最新长期维护版: 18.16.0 (includes npm 9.5.1) 有两种解决办法: #1、方法一 重新安装低版本的node.js#2、方法二 在package.json文件中进行配置【此种方法较简单】介绍一下第二种方法: …

win32汇编-使用子程序

当程序中相同功能的一段代码用得比较频繁时,可以将它分离出来写成一个子程序,在主程序中用call指令来调用它。这样可以不用重复写相同的代码, 仅仅用call指令就可以完成多次同样的工作了。Win 32汇编中的子程序也采用堆栈来传递参数&#xff…

Python学习-----Day09

一、利用装饰器来获取函数运行的时间、 #导入time模块 import timedef decorated(fn):def inner():#time.time获取函数执行的时间a time.time() # func开始的时间fn()b time.time() # func结束的时间print(f"{fn.__name__}程序运行的总数时间:{b - a}秒")return…

Win系统VMware虚拟机安装配置(二)

系统的安装得分两个步骤,第一步得配置一台电脑,选配 cpu,内存,磁盘,网卡等硬 件。第二步才是安装系统。 一、配置电脑 1、 进入 VMware 双击 VMware 图标,看到如下界面。 2、 自定义新的虚拟机 3、…

地铁大数据客流分析系统 设计与实现 计算机竞赛

文章目录 1 前言1.1 实现目的 2 数据集2.2 数据集概况2.3 数据字段 3 实现效果3.1 地铁数据整体概况3.2 平均指标3.3 地铁2018年9月开通运营的线路3.4 客流量相关统计3.4.1 线路客流量排行3.4.2 站点客流量排行3.4.3 入站客流排行3.4.4 整体客流随时间变化趋势3.4.5 不同线路客…

SNAP对Sentinel-1预处理

SNAP对Sentinel-1预处理 一、导入数据 二、轨道校正 点击run开始处理 三、噪声去除 打开S-1 Thermal Noise Removal工具 如果选中了VH,就只会输出一个VH极化结果 四、辐射定标 Run 五、滤波处理 六、地形校正 这边的dem需要自己下载 dem下载地址 如果一格…

跨境电子商城源代码定制网站搭建(商品采集,多货币,多语言)

欢迎来到全新的跨境电子商城源代码定制网站搭建!这是一个集商品采集、多币种和多语言于一身的创新平台,为您的跨境电商事业提供了前所未有的便利和机会! 一、精选全球商品,一站式采集 在跨境电子商务的时代,我们深谙选择高质量商品的重要性。…

Python 框架学习 Django篇 (三) 链接数据库

只要你是做后端开发的,那么就离不开各种数据库,Django框架对各种数据库都非常友好,比如常见的PostgreSQL、MySQL、SQLite、Oracle,django都对他们提供了统一调用api,我们这里主要使用mysql数据库作为演示 一、ORM机制 …

【开源分享】基于Html开发的房贷计算器,模仿新浪财经

房贷计算器是一种房贷计算的在线计算Web应用,按用户选择的贷款类型、贷款金额、期限、利率可计算得出每月月供参考、支付利息、还款总额这些信息。本文模仿新浪财经开发的房贷计算器。 作品预览 https://fangdai.gitapp.cn 源码地址 https://github.com/geeeeeee…

5、使用 pgAdmin4 图形化创建和管理 PostgreSQL 数据库

通过上几篇文章我们讲解了如何安装 PostgreSQL 数据库软件和 pgAdmin4 图形化管理工具。 今天我们继续学习如何通过 pgAdmin4 管理工具图形化创建和管理 PostgreSQL 数据库。 一、PostgreSQL的基本工作方式 在学习如何使用PostgreSQL创建数据库之前,我们需要了解一…

vue3+element-plus 封装高度搜索组件,支持多种类型

目录 一、应用场景 二、开发流程 三、详细开发流程 1.新建文件 2.开始步骤 3.详细代码 (1).index.vue (2).搜索组件 (3).单个搜索组件 总结 一、应用场景 一般很多网站,有很多数据列表,基本都要做搜索的功能,如果涉及很多页面&…

【CMN】Components组件汇总

CMN 700由各种类型的设备组成,包括路由器模块、CHI节点和网桥。所需要的组件取决于系统的需求,有些组件是可选的,或者只有在满足某些需求时才会使用。CMN 700可以集成到一个完整的SoC系统中,该系统还包括其他这里未描述到的设备。…

金融机器学习方法:K-均值算法

目录 1.算法介绍 2.算法原理 3.python实现示例 1.算法介绍 K均值聚类算法是机器学习和数据分析中常用的无监督学习方法之一,主要用于数据的分类。它的目标是将数据划分为几个独特的、互不重叠的子集或“集群”,以使得同一集群内的数据点彼此相似&…

Leetcode刷题详解——四数之和

1. 题目链接:四数之和 2. 题目描述: 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应&#xff0…

stm32 cubeide 闪退 显示self upgrade failed

更新或安装新版cubeide时,可能会出现打开后一段时间直接闪退,显示如下图。此时怎么折腾cubeide都是没用的。应该去升级stm32 cubemx。记得打开cubemx时选择用管理员身份打开,升级完成后重新开打。然后尝试打开cubdeide,如果继续报…

接口测试面试题整理​​​​​​​

HTTP, HTTPS协议 什么是DNSHTTP协议怎么抓取HTTPS协议说出请求接口中常见的返回状态码http协议请求方式HTTP和HTTPS协议区别HTTP和HTTPS实现机有什么不同POST和GET的区别HTTP请求报文与响应报文格式什么是Http协议无状态协议?怎么解决HTTP协议无状态协议常见的POST提交数据方…

《向量数据库指南》——向量数据库是小题大作的方案?

假设大语言模型需要 10 秒钟才能生成一条结果,即需要存储的单条新记忆。那么我们获得 10 万条记忆的时间周期将为:100000 x 10 秒 = 1000000 秒——约等于 11.57 天。而即使我们用最简单的暴力算法(Numpy 的点查询),整个过程也只需要几秒钟时间,完全不值得进行优化!也就…

微信小程序会议OA系统

Flex弹性布局 Flex弹性布局是一种 CSS3 的布局模式,也叫Flexbox。它可以让容器中的元素按一定比例自动分配空间,使得它们在不同宽度、高度等情况下仍能保持整齐和密集不间隙地排列。 在使用Flexbox弹性布局时,首先需要创建一个容器和若干个…

VSCode搭建ESP32 ESP-IDF开发环境-Windows

陈拓 2023/10/09-2023/10/14 1. 安装Windows系统下的ESP32 ESP-IDF开发环境 见《Windows系统安装ESP32 ESP-IDF开发环境》 Windows系统安装ESP32 ESP-IDF开发环境-CSDN博客Windows系统安装ESP32 ESP-IDF开发环境。https://blog.csdn.net/chentuo2000/article/details/1339225…

SpringMVC之全局异常拦截器

在SpringMVC自动装配核心类之WebMvcAutoConfiguration内部实例化EnableWebMvcConfiguration过程中会触发其父类WebMvcConfigurationSupport内部初始化HandlerExceptionResolver。 1.WebMvcConfigurationSupport public class WebMvcConfigurationSupport implements Applicat…