【大模型系列】图片生成(DDPM/VAE/StableDiffusion/ControlNet/LoRA)

文章目录

  • 1 DDPM(UC Berkeley, 2020)
    • 1.1 如何使用DDPM生成图片
    • 1.2 如何训练网络
    • 1.3 模型原理
  • 2 VAE:Auto-Encoding Variational Bayes(2022,Kingma)
    • 2.1 如何利用VAE进行图像增广
    • 2.2 如何训练VAE网络
    • 2.3 VAE原理
      • 2.3.1 Auto-Encoder
      • 2.3.2 VAE编码器
      • 2.3.3 VAE解码器
  • 3 Stable Diffusion(2022, CompVis & RunwayML)
    • 3.1 Stable diffusion可以干什么?
    • 3.2 Stable diffusion解决什么问题?
    • 3.3 训练过程
  • 4 ControlNet(2023, Stanford)
    • 4.1 网络结构
    • 4.2 总结
  • 5 LoRA:一种低成本的大模型微调方案(2021,微软)
    • 5.1 LoRA要解决什么问题?
    • 5.2 实际的应用方式
    • 5.3 总结

1 DDPM(UC Berkeley, 2020)

DDPM:Denoising Diffusion Probabilistic Models

  • Paper:https://arxiv.org/abs/2006.11239

  • 详细公式推导:https://arxiv.org/pdf/2208.11970.pdf

  • 博客:

    • https://juejin.cn/post/7215640327633748027
    • https://zhuanlan.zhihu.com/p/563661713
    • https://hf-mirror.com/blog/annotated-diffusion

生成模型的4种类型:

在这里插入图片描述
Source: Lilian_Weng

扩散模型中最重要的思想根基是马尔可夫链,它的一个关键性质是平稳性。即如果一个概率随时间变化,那么再马尔可夫链的作用下,它会趋向于某种平稳分布,时间越长,分布越平稳。

扩散模型包括两个过程:前向过程(forward process)和反向过程(reverse process),其中前向过程又称为扩散过程(diffusion process),如下图所示。无论是前向过程还是反向过程都是一个参数化的马尔可夫链(Markov chain),其中反向过程可以用来生成数据,这里我们将通过变分推断来进行建模和求解。
在这里插入图片描述

  • 前向过程(扩散过程): 逐渐将高斯噪声添加到图像中,直到得到一个纯噪声的图像;
  • 反向过程:从纯噪声图像中逐渐对其进行去噪,直到得到真实的图像。

1.1 如何使用DDPM生成图片

参考代码:https://github.com/zoubohao/DenoisingDiffusionProbabilityModel-ddpm-/blob/main/Diffusion/Diffusion.py
在这里插入图片描述

DDPM使用U-Net作为图像生成网络,并在中间层添加了Attention模块,用于将time embedding与image embedding进行计算,其流程如下:

  • Step1:随机生成一组噪声,作为初始图像xT,后续过程就是就这个图像进行去噪
  • Step2:将 x t x_t xt输入到UNet中,得到输出
  • Step3:根据下列公式计算 x t − 1 x_{t-1} xt1,即为( x t − U n e t ( x t ) x_t-Unet(x_t) xtUnet(xt))与一组的噪声的加权
    x t − 1 = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ θ ( x t , t ) ) + σ t z \mathbf{x}_{t-1}=\frac{1}{\sqrt{\alpha_t}}\left(\mathbf{x}_t-\frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}} \boldsymbol{\epsilon}_\theta\left(\mathbf{x}_t, t\right)\right)+\sigma_t \mathbf{z} xt1=αt 1(xt1αˉt 1αtϵθ(xt,t))+σtz
  • Step4:t=0的时候,不加上述公式的最后一项噪声,直接输出第一项作为最后的结果。

其中:

  • α t α_t αt是t时刻的系数, α t = 1 − β t αt = 1 - βt αt=1βt,其中β取值[0.0001, 0.02]
  • α ˉ t \bar\alpha_{t} αˉt是t时刻α系数累乘的结果
  • z是从正太分布中采样的一个跟输出一样大小的随机噪声
  • σ t = β t ∗ ( 1 − α ˉ t − 1 ) / ( α ˉ t ) ≈ β t = 1 − α t \sigma_t = \beta_t * (1 - \bar\alpha_{t-1}) / (\bar\alpha_{t}) ≈ \beta_t = 1 - \alpha_t σt=βt(1αˉt1)/(αˉt)βt=1αt
  • ϵ θ ( x t , t ) \epsilon_\theta(x_t, t) ϵθ(xt,t)表示t时刻的网络的输出

1.2 如何训练网络

在这里插入图片描述

扩散模型的过程是逐渐向图像中加入噪声的过程,从时刻0~T时刻的t的变化叫做差异时间表。DDPM使用的是线性时间表:

  • 对T个时间步做均匀拆分得到 β t \beta_{t} βt(与时间T相关的线性函数),越往后 β t \beta_{t} βt越大
  • 根据 β t \beta_t βt计算 α t = 1 − β t \alpha_t = 1 - \beta_t αt=1βt

随着逐渐添加噪声,图片越来越难以区分,直到彻底变成一个二维高斯噪声
在这里插入图片描述

Source: The Annotated Diffusion Model, Niels Rogge et al.

训练流程如下:

  • Step1: 准备输入图像x0,将其归一化到[-1, 1]
  • Step2: 随机生成一个与图像尺寸的相同的随机高斯噪声ε
  • Step3: 通过 x t = α ˉ t x 0 + 1 − α ˉ t ϵ x_t = \sqrt{\bar\alpha_t}x_0 + \sqrt{1 - \bar\alpha_t}\epsilon xt=αˉt x0+1αˉt ϵ,计算经过T次加噪之后的结果;
  • Step4: 计算随机高斯噪声 ϵ \epsilon ϵ与输入图片 x 0 x_0 x0被T次加噪之后的结果 x t x_t xt之间的均方误差损失MSE

扩散模型的损失函数是计算两张图像的相似性,输入是加完噪声后的图像,输出是预测的噪声, 计算两者的MSE损失:

def p_losses(denoise_model, x_start, t, noise=None, loss_type="l1"):
    # 1. 根据时刻t计算随机噪声分布,并对图像x_start进行加噪
    x_noisy = q_sample(x_start=x_start, t=t, noise=noise)
    # 2. 根据噪声图像以及时刻t,预测添加的噪声
    predicted_noise = denoise_model(x_noisy, t)
    # 3. 对比添加的噪声和预测的噪声的相似性
    loss = F.mse_loss(noise, predicted_noise)
    return loss

1.3 模型原理

公式推导参考资料(后续更新公式推导笔记):

  • https://arxiv.org/pdf/2006.11239.pdf
  • https://zhuanlan.zhihu.com/p/565901160
  • https://zhuanlan.zhihu.com/p/563661713
  • https://lilianweng.github.io/posts/2021-07-11-diffusion-models/

2 VAE:Auto-Encoding Variational Bayes(2022,Kingma)

参考资料:

  • Paper:https://arxiv.org/pdf/1312.6114.pdf
  • 博客:
    • https://blog.51cto.com/Lolitann/5920438
    • https://zhuanlan.zhihu.com/p/578619659

VAE模型是Kingma(也是Adam的作者)大神在2022年发表的文章,是一篇非常非常经典,且实现非常优雅的生成模型,同时它还为bayes概率图模型难以求解的问题提供了一种有效的思路。
在这里插入图片描述
Source: 卷积变分自编码器

2.1 如何利用VAE进行图像增广

VAE是一种思想,需要使用Auto-Encoder结构,包含一个Encoder和一个Decoder,在论文中作者仅仅采用了简单MLP来实现Encoder和Decoder,在实际实践中可以使用更为复杂的网络结构以提升网络的生成效果。下面阐述基于VAE思想的图片生成流程:

  • Step1: 图片输入到Encoder中得到图像编码image embedding
  • Step2: 将图像编码输入到不同的分支中得到均值 μ \mu μ和方差 σ \sigma σ向量;
  • Step3: 从正太分布中随机产生一个向量z;
  • Step4: 计算新的向量: z ’ = exp ⁡ ( σ ) × z + μ z’ = \exp(\sigma)×z+\mu z=exp(σ)×z+μ
  • Step5: 将新的向量送入Decoder中产生图片

2.2 如何训练VAE网络

在AE中只需要最小化重构损失。但是在VAE中就不能只最小化重构损失了,因为是模型自己学的,如果不加约束,那它可以直接学成0,开摆了,那模型就会退化回AE。所以需要加条件限制,其实就是计算其与标准正太分布的距离,让编码器输出的参数靠近标准正太分布(涉及到极大似然)。因此整体损失函数为:

L o s s = M S E ( X , X ′ ) + K L ( N ( μ , σ 2 ) , N ( 0 , 1 ) ) K L ( N ( μ , σ 2 ) , N ( 0 , 1 ) ) = 1 2 ( μ 2 + σ 2 − 2 log ⁡ ( σ ) − 1 ) Loss = MSE(X, X') + KL(N(\mu, \sigma^2), N(0, 1)) \\ KL(N(\mu, \sigma^2), N(0, 1)) = \frac{1}{2}(\mu^2+\sigma^2-2\log(\sigma) - 1) Loss=MSE(X,X)+KL(N(μ,σ2),N(0,1))KL(N(μ,σ2),N(0,1))=21(μ2+σ22log(σ)1)
第一项为重构损失,第二项为编码器输出的均值与方差与标准正太分布之间的KL散度。

2.3 VAE原理

2.3.1 Auto-Encoder

自编码器的目的是利用无标签数据找到一个有效的低维度的特征提取器,输入样本x通过编码器获得低维度特征z,最后通过解码器重构。
在这里插入图片描述
问题在于,这种方式只记录了x和z的对应关系,并没有泛化能力。

2.3.2 VAE编码器

VAE的编码器不再是对一个样本直接生成一个码空间上的一个点,而是使一个样本对应一个分布。如何做到的呢?AE编码器是直接得到一个低维的特征表示,而VAE会生成一组均值和方差,这样编码器出来的东西就可以变成一个正太分布,再从这个分布中采样获得z编码。
在这里插入图片描述
VAE出来的编码是: z = exp ⁡ ( σ ) × ϵ + μ z = \exp(\sigma)×\epsilon+\mu z=exp(σ)×ϵ+μ, 这里使用的参数重整化技巧。即在一个标准的正太分布中采样一个 ϵ \epsilon ϵ,再与编码器输出的均值跟方差进行运算,就可以等价于从编码器输出的正太分布中进行的采样。使用这种方式的原因在于直接从原始正太分布中采用出z的这个过程是不可导的,因此采用参数重整化来实现整个过的可导。

重参数技巧

英文名是reparameterization trick,就是我们要从 p ( Z ∣ X k ) p\left(Z \mid X_k\right) p(ZXk) 中采样一个 Z k Z_k Zk 出来,尽管我们知道了 p ( Z ∣ X k ) p\left(Z \mid X_k\right) p(ZXk) 是正态分布,但是均值方差都是靠模型算出来的,我们要靠这个过程反过来优化均值方差的模型,但是“采样”这个操作是不可导的,而采样的结果是可导的。我们利用
1 2 π σ 2 exp ⁡ ( − ( z − μ ) 2 2 σ 2 ) d z = 1 2 π exp ⁡ [ − 1 2 ( z − μ σ ) 2 ] d ( z − μ σ ) \begin{aligned} & \frac{1}{\sqrt{2 \pi \sigma^2}} \exp \left(-\frac{(z-\mu)^2}{2 \sigma^2}\right) d z \\ = & \frac{1}{\sqrt{2 \pi}} \exp \left[-\frac{1}{2}\left(\frac{z-\mu}{\sigma}\right)^2\right] d\left(\frac{z-\mu}{\sigma}\right) \end{aligned} =2πσ2 1exp(2σ2(zμ)2)dz2π 1exp[21(σzμ)2]d(σzμ)

这说明 ( z − μ ) / σ = ε (z-\mu) / \sigma=\varepsilon (zμ)/σ=ε 是服从均值为0 、方差为 1 的标准正态分布的,要同时把 d z d z dz 考虑进去,是因为乘上 d z d z dz 才算是概率,去掉 d z d z dz 是概率密度而不是概率。这时候我们得到: 从 N ( μ , σ 2 ) 从 \mathcal{N}\left(\mu, \sigma^2\right) N(μ,σ2) 中采样一个 Z Z Z ,相当于从 N ( 0 , I ) \mathcal{N}(0, I) N(0,I) 中采样一个 ε \varepsilon ε ,然后让 Z = μ + ε × σ Z=\mu+\varepsilon \times \sigma Z=μ+ε×σ

于是,我们将从 N ( μ , σ 2 ) \mathcal{N}\left(\mu, \sigma^2\right) N(μ,σ2) 来样变成了从 N ( 0 , I ) \mathcal{N}(0, I) N(0,I) 中来样,然后通过参数变换得到从 N ( μ , σ 2 ) \mathcal{N}\left(\mu, \sigma^2\right) N(μ,σ2) 中采样的结果。这样一来,“采样”这个操作就不用参与梯度下降了,改为采样的结果参与,使得整个模型可训练了。
在这里插入图片描述
Source: 变分自编码器(一):原来是这么一回事

2.3.3 VAE解码器

在这里插入图片描述

高斯混合模型:任何一个部分都可以用多个高斯分布取逼近(类似于波的分解)。
编码器的作用是把输入分布编码成一个码空间,解释器的作用就是从这个码空间中采样,去尽力还原编码器的那个分布。

3 Stable Diffusion(2022, CompVis & RunwayML)

参考资料:

  • Paper:https://arxiv.org/pdf/2112.10752.pdf

  • 博客:

    • https://developer.aliyun.com/article/1134030
    • https://www.zhangzhenhu.com/aigc/稳定扩散模型.html

Stable diffusion是latent diffusion models(LDMs,见Paper链接)的一个开源预训练模型。LDM本身是由CompVis提出并联合Runway ML进行开发实现,后来Stability AI也参与进来并提供了一些资源,联合搞了一个预训练的LDM模型,成为Stable diffusion。
在这里插入图片描述

Source: Deephub IMBA

3.1 Stable diffusion可以干什么?

Stable diffusion相较于DDPM,可以增加额外的指导信息,可以生成我们想要的图像:

  • 基于本文生成图像
  • 基于图像生成图像

3.2 Stable diffusion解决什么问题?

DDPM的问题:

  • DDMP在生成图像时,需要输入与图像尺寸一样大的随机噪声进行前向去噪。生成的图像分辨率越高,所需的计算和显存资源也就越多,耗费的成本也就越高。
  • DDPM无法控制图像生成的方向;

Stable diffusion的解决方案:

  • 针对生成高分辨率图像成本高的问题:Stable diffusion先引入一个编码器,对原始图像进行压缩编码,然后对编码后的向量进行扩散过程,即在潜在空间进行扩散;
  • 针对无法控制图像生成方向的问题:在UNet中加入Attention机制,处理条件变量y(语义、文本等)用于指导图像的生成;

3.3 训练过程

  • Step1: 训练一个自编码器,将图像数据压缩为低维表示:
    在这里插入图片描述

Source: Deephub IMBA

  • Step2: 在latent space进行正向和反向扩散过程:
    在这里插入图片描述

Source: Deephub IMBA

正向过程:向潜在数据中添加噪声

反向过程:从潜在数据中去除噪声

  • Step3: 在反向过程中接受条件输入:如文本、图像、语义等
    在这里插入图片描述

  • Step4: 计算loss

相较于DDMP,条件化的LDM目标函数稍微变化了一些,即预测的噪声需要上一轮的结果、时间步和条件输入(文本、图像等)
在这里插入图片描述

4 ControlNet(2023, Stanford)

  • Paper:https://arxiv.org/abs/2302.05543

  • Github:https://github.com/lllyasviel/ControlNet-v1-1-nightly

  • 博客:

    • https://www.zhangzhenhu.com/aigc/controlnet.html
    • https://blog.csdn.net/xs1997/article/details/134482651

Stable diffusion支持text guidance图像生成,但是文本的描述能力是有限的,图像的很多细节是无法用文本进行清晰描述的,比如人的姿态等。ControlNet在Stable Diffusion的基础上加入了更多可控生成方式,通过一张图像(姿态图、线稿、草图等)去控制图像生产的过程,这个额外的输入作为stable diffusion的一个控制条件condition,它可以控制图像的生成结果,使其更符合我们输入的条件图像特征。ControlNet和SAM同时获得了ICCV2023最佳论文奖。

在这里插入图片描述

4.1 网络结构

要使图像作为额外的信息,需要先对图像进行编码,controlNet的做法是直接利用stable diffusion的UNet来作为图像编码器:
在这里插入图片描述

首先回顾一下 Unet 的结构,Unet 的网络结构呈现一个 U 型,按照左侧、中间底部、右侧的划分方式,可以将整个网络结构分为三个子部分:

  • 降采样部分,一共包含12个网络块(blocks),把输入的 64×64 的 latent image 逐步降维到 8×8, 这个过程类似于压缩过程,所以可以称为编码器(encoder),也可以称为降采样(down sample)。
  • 中间部分,U 型结构的最低层,负责处理 8×8 的数据,一般称为 Middle block。
  • 上采样部分,同样包含12个网络块(blocks),把输入的 8×8 的 latent image 逐步升维到 64×64, 这个过程类似于解压过程,所以可以称为解码器(decoder),也可以称为上采样(up sample)。

注:zero convolution层指的是卷积层z初始化为0的1x1卷积,这样在训练的前期不会影响stable diffusion图像生成部分,不对原始SD的能力造成较大的破坏。

ControlNet的输出会和Unet的对应部分输出的元素Add到一起,然后再通过跳线输入给Unet的Decoder部分,所以增加了ControlNet并不会影响原来的结构。

4.2 总结

ControlNet 是一个任务相关的端到端方法,即对于每一种控制类型都要训练一个特定的 ControlNet 支持, 比如线图控制、深度图控制、姿态控制等等。这样有好处也有坏处, 单独看一个场景,拥有使用简单、训练成本低等优点。 但是,如果面对一个复杂场景(多场景),反而变得略麻烦,每一个细分场景都要训练和维护一个模型, 成本高昂,也不易用。

5 LoRA:一种低成本的大模型微调方案(2021,微软)

LoRA: Low-Rank Adaptation of Large Language Models

  • Paper:https://arxiv.org/abs/2106.09685

  • 博客:

    • https://finisky.github.io/lora/
      • https://www.cnblogs.com/LittleHann/p/17318509.html#_label3

5.1 LoRA要解决什么问题?

微调大模型目前的方案有:部分微调、使用adapters和prompting,这些方法都存在一些问题:

  • Adapters引入额外的推理延迟 (由于增加了模型层数)
  • Prefix-Tuning难于训练,且预留给prompt的序列挤占了下游任务的输入序列空间,影响模型性能

LoRA的解决思路: 不对原始模型进行微调

LoRA的思想也很简单,在原始大模型旁边增加一个旁路,做一个降维再升维的操作,来模拟所谓的intrinsic rank。训练的时候固定大模型的参数,只训练降维矩阵A与升维矩阵B。而模型的输入输出维度不变,输出时将BA与大模型的结果叠加。用随机高斯分布初始化A,用0矩阵初始化B,保证训练的开始此旁路矩阵依然是0矩阵。这种思想有点类似于残差连接,同时使用这个旁路的更新来模拟full finetuning的过程。
在这里插入图片描述

LoRA核心点:

  • 不对原始模型进行微调:增加旁路,训练分布的偏移量来模拟对原始网络的整体finetune
  • 对旁路矩形进行低秩分解以降低旁路模型训练参数;

5.2 实际的应用方式

理论上lora可以支持任何线性层,包括transformer中的4个attention矩阵和2个feed forward中的矩阵,论文只在attention上做了实验,它限制总参数量不变的情况下观察是:

  • 在attention其中一个矩阵上,放一个更高秩的lora效果好?
  • 在多个attention的矩阵上,分别放置低秩一点的lora效果好?

结论是:把秩分散到多个矩阵上,效果会优于集中在单个上的效果。在一般任务上很小的秩就可以和很大秩具备类似的效果,这也证明了作者一开始做出的改变量低秩的假设。

流程如下:

  • Step1: 针对原始网络中Attention模块的变换矩阵W,构造一个旁路矩阵ΔW;
  • Step2: 将旁路矩阵ΔW底秩分解成AB两个矩阵,A的维度是[n, r], B的维度是[r, m],AB相乘的结果维度是[n, m],这就与原理的矩阵规模一样了;
  • Step3: 训练时将AB的结果与原来网络中的矩阵W相加,计算网络输出前向结果和Loss,反向传播时只更新A、B矩阵;
  • Step4: 模型训练完成后,将AB的结果与对应的原网络中的参数进行相加,即可得到更新后的网络的参数;

5.3 总结

  • LoRA与Adapter的区别:
    • adapter是在模块的后面接上一个mlp,对模块的计算结果进行一个后处理
    • lora是和模块的计算并行的去做一个mlp,和原来的模块共用一个输入
  • LoRA通过低秩分解,降低网络训练测参数量;
  • LoRA训练完成之后可以合并到原始网络中,不会增加额外的耗时与计算量;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

编程示例:约瑟夫环问题

编程示例:约瑟夫环问题 1约瑟夫环的故事 在浩瀚的计算机语言中,总有一些算法——虽然码量很少, 但却能完美又巧妙地解决那些复杂的问题。接下来, 我们要介绍的“约瑟夫环”问题就是一个很好的例子。 这个问题来源于犹…

基于uniapp的旅游景点入园预约系统 微信小程序0220o

技术要求: a) 操作系统:Windows、Linux等; b) 开发工具:Android Studio、pycharm等; c) 数据库:Oracle、MySQL等; d) 开发语言:python; e) 技术框架:采用MVC模…

GPT实战系列-如何让LangChain的Agent选择工具

GPT实战系列-如何让LangChain的Agent选择工具 LangChain GPT实战系列-LangChain如何构建基通义千问的多工具链 GPT实战系列-构建多参数的自定义LangChain工具 GPT实战系列-通过Basetool构建自定义LangChain工具方法 GPT实战系列-一种构建LangChain自定义Tool工具的简单方法…

PHP中的反序列化漏洞

PHP中的反序列化漏洞 目录 PHP 中的序列化与反序列化 概述 序列化 基本类型的序列化 对象的序列化 反序列化 示例序列化与反序列化 反序列化漏洞 - PHP 中的魔术方法 - Typecho_v1.0 中的反序列化漏洞 POP链的构造思路 pop链案例 反序列化逃逸 字符串逃逸&#xff…

Mac-自动操作 实现双击即可执行shell脚本

背景 在Mac上运行shell脚本,总是需要开启终端窗口执行,比较麻烦 方案 使用Mac上自带的“自动操作”程序,将shell脚本打包成可运行程序(.app后缀),实现双击打开即可执行shell脚本 实现细节 找到Mac上 应用程序中的 自动操作&am…

HTML案例-1.标签练习

效果 源码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head&g…

三维高斯是什么

最近3DGS的爆火&#xff0c;引发了一众对三维高斯表达场景的研究。这里的三维高斯是什么&#xff1f;本文用简答的描述和简单实验来呈现三维高斯的数学意义。本文没有公式推导&#xff0c;主打一个意会。 我们高中都学过高斯分布&#xff0c;即一个钟形曲线。它的特点是有一个…

数字逻辑-时序逻辑电路二——沐雨先生

一、实验目的 &#xff08;1&#xff09;熟悉计数器的逻辑功能及特性。 &#xff08;2&#xff09;掌握计数器的应用。 &#xff08;3&#xff09;掌握时序逻辑电路的分析和设计方法。 二、实验仪器及材料 三、实验原理 1、集成4位计数器74LS161&#xff08;74LS160&#…

RSA加密与解密(Java实现)

RSA加密算法是一种非对称加密算法&#xff0c;它使用一对密钥来进行加密和解密操作。 基本原理 加密过程&#xff1a; 密钥生成&#xff1a;首先需要生成一对密钥&#xff0c;这对密钥包括一个公钥和一个私钥。公钥是公开的&#xff0c;可以分发给任何人&#xff0c;而私钥必须…

导入fetch_california_housing 加州房价数据集报错解决(HTTPError: HTTP Error 403: Forbidden)

报错 HTTPError Traceback (most recent call last) Cell In[3], line 52 from sklearn.datasets import fetch_california_housing3 from sklearn.model_selection import train_test_split ----> 5 X, Y fetch_california_housing(retu…

如何看待Figure公司与Open AI合作的最新机器人成果Figure 01?

想象一下&#xff0c;如果有一天&#xff0c;你走进办公室&#xff0c;迎面而来的不是熟悉的同事&#xff0c;而是一位名叫Figure 01的机器人新朋友。它不仅可以帮你倒咖啡&#xff0c;还能跟你聊天&#xff0c;甚至在你加班时给予精神上的支持。听起来是不是像科幻小说的情节&…

自动控制原理--matlab/simulink建模与仿真

第一讲 自动控制引论 第二讲 线性系统的数学模型 第三讲 控制系统的复域数学模型(传递函数) 第四讲 控制系统的方框图 /video/BV1L7411a7uL/?p35&spm_id_frompageDriver pandas, csv数据处理 numpy&#xff0c;多维数组的处理 Tensor&#xff0c;PyTorch张量 工作原理图…

【Linux】Ubuntu使用Netplan配置静态/动态IP

1、说明 Ubuntu 18.04开始,Ubuntu和Debian移除了以前的ifup/ifdown命令和/etc/network/interfaces配置文件,转而使用ip link set或者/etc/netplan/01-netcfg.yaml模板和sudo netplan apply命令实现网络管理。 Netplan 是抽象网络配置描述器,用于配置Linux网络。 通过netpla…

提升零售行业竞争力的信息抽取技术应用与实践

一、引言 在当今快速发展的零售行业中&#xff0c;沃尔玛、家乐福等大型连锁超市为消费者提供了丰富的日常食品和日用品。为了进一步提升客户体验和优化库存管理&#xff0c;这些零售巨头纷纷开始探索和应用先进的信息抽取技术。 本文将深入探讨一个成功的信息抽取项目&#…

基于word2vec 和 fast-pytorch-kmeans 的文本聚类实现,利用GPU加速提高聚类速度

文章目录 简介GPU加速 代码实现kmeans聚类结果kmeans 绘图函数相关资料参考 简介 本文使用text2vec模型&#xff0c;把文本转成向量。使用text2vec提供的训练好的模型权重进行文本编码&#xff0c;不重新训练word2vec模型。 直接用训练好的模型权重&#xff0c;方便又快捷 完整…

19C 19.22 RAC 2节点一键安装演示

Oracle 一键安装脚本&#xff0c;演示 2 节点 RAC 一键安装过程&#xff08;全程无需人工干预&#xff09;&#xff1a;&#xff08;脚本包括 GRID/ORALCE PSU/OJVM 补丁自动安装&#xff09; ⭐️ 脚本下载地址&#xff1a;Shell脚本安装Oracle数据库 脚本第三代支持 N 节点…

CompletableFuture原理与实践-外卖商家端API的异步化

背景 随着订单量的持续上升&#xff0c;美团外卖各系统服务面临的压力也越来越大。作为外卖链路的核心环节&#xff0c;商家端提供了商家接单、配送等一系列核心功能&#xff0c;业务对系统吞吐量的要求也越来越高。而商家端API服务是流量入口&#xff0c;所有商家端流量都会由…

畅捷通T+ Ufida.T.DI.UIP.RRA.RRATableController 反序列化RCE漏洞复现

0x01 产品简介 畅捷通 T+ 是一款灵动,智慧,时尚的基于互联网时代开发的管理软件,主要针对中小型工贸与商贸企业,尤其适合有异地多组织机构(多工厂,多仓库,多办事处,多经销商)的企业,涵盖了财务,业务,生产等领域的应用,产品应用功能包括:采购管理、库存管理、销售…

Python基于大数据的豆瓣电影分析,豆瓣电影可视化系统,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

linux 安装gradle7.4.2环境

1.下载gradle7.4.2工程 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/1hoNEFkBJPHAgs9ITAEh3Zg?pwdGJ…