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

扩散模型(三)

相关阅读:

  • 扩散模型(一)

  • 扩散模型(二)

Latent Variable Space

潜在扩散模型(LDM;龙巴赫、布拉特曼等人,2022 年)在潜在空间而非像素空间中运行扩散过程,这使得训练成本更低,推理速度更快。其背后的动机源于这样一个观察结果:图像的大部分信息仅关乎感知细节,而在经过大幅压缩后,语义和概念层面的构图依然保留。LDM 通过生成式建模学习,大致将感知压缩和语义压缩分离开来。首先,利用自动编码器去除像素级冗余,然后在学习到的潜在空间上,通过扩散过程操控 / 生成语义概念。

感知压缩过程依赖于一个自动编码器模型。编码器 E \mathcal{E} E 用于将输入图像 x ∈ R H × W × 3 \mathbf{x} \in \mathbb{R}^{H \times W \times 3} xRH×W×3 压缩为一个更小的二维潜在向量: z = E ( x ) ∈ R h × w × c \mathbf{z} = \mathcal{E}(\mathbf{x}) \in \mathbb{R}^{h \times w \times c} z=E(x)Rh×w×c,其中,下采样率 f = H / h = W / w = 2 m , m ∈ N f=H/h=W/w=2^m, m \in \mathbb{N} f=H/h=W/w=2m,mN。然后,解码器 D \mathcal{D} D 从潜在向量中重建图像,即 x ~ = D ( z ) \tilde{\mathbf{x}} = \mathcal{D}(\mathbf{z}) x~=D(z)。该论文在自动编码器训练中探索了两种正则化方法,以避免潜在空间中出现过高的方差。

  • KL 正则化:对学习到的潜在变量施加一个朝向标准正态分布的小 KL 惩罚项,这与变分自编码器(VAE)类似。
  • VQ 正则化:在解码器中使用向量量化层,类似于向量量化变分自编码器(VQVAE),但量化层被解码器吸收。

扩散和去噪过程发生在潜在向量 z \mathbf{z} z 上。去噪模型是一个时间条件 U 型网络,通过增加交叉注意力机制来处理图像生成中灵活的条件信息(例如类别标签、语义图、图像的模糊变体)。这种设计等同于通过交叉注意力机制将不同模态的表示融合到模型中。每种类型的条件信息都与一个特定领域的编码器 τ θ \tau_\theta τθ 配对,以将条件输入 y y y 投影到一个中间表示,该中间表示可以映射到交叉注意力组件中,即 τ θ ( y ) ∈ R M × d τ \tau_\theta(y) \in \mathbb{R}^{M \times d_\tau} τθ(y)RM×dτ:

Attention ( Q , K , V ) = softmax ( Q K ⊤ d ) ⋅ V where  Q = W Q ( i ) ⋅ φ i ( z i ) , K = W K ( i ) ⋅ τ θ ( y ) , V = W V ( i ) ⋅ τ θ ( y ) and  W Q ( i ) ∈ R d × d ϵ i , W K ( i ) , W V ( i ) ∈ R d × d τ , φ i ( z i ) ∈ R N × d ϵ i , τ θ ( y ) ∈ R M × d τ \begin{aligned} &\text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}\Big(\frac{\mathbf{Q}\mathbf{K}^\top}{\sqrt{d}}\Big) \cdot \mathbf{V} \\ &\text{where }\mathbf{Q} = \mathbf{W}^{(i)}_Q \cdot \varphi_i(\mathbf{z}_i),\; \mathbf{K} = \mathbf{W}^{(i)}_K \cdot \tau_\theta(y),\; \mathbf{V} = \mathbf{W}^{(i)}_V \cdot \tau_\theta(y) \\ &\text{and } \mathbf{W}^{(i)}_Q \in \mathbb{R}^{d \times d^i_\epsilon},\; \mathbf{W}^{(i)}_K, \mathbf{W}^{(i)}_V \in \mathbb{R}^{d \times d_\tau},\; \varphi_i(\mathbf{z}_i) \in \mathbb{R}^{N \times d^i_\epsilon},\; \tau_\theta(y) \in \mathbb{R}^{M \times d_\tau} \end{aligned} Attention(Q,K,V)=softmax(d QK)Vwhere Q=WQ(i)φi(zi),K=WK(i)τθ(y),V=WV(i)τθ(y)and WQ(i)Rd×dϵi,WK(i),WV(i)Rd×dτ,φi(zi)RN×dϵi,τθ(y)RM×dτ

在这里插入图片描述
图 14:The architecture of the latent diffusion model (LDM).

Scale up Generation Resolution and Quality

为了生成高分辨率的高质量图像,霍等人(2021)提议采用由多个扩散模型组成的流水线,这些模型的分辨率逐步提高。流水线模型之间的噪声条件增强对于最终图像质量至关重要,具体做法是对每个超分辨率模型 p θ ( x ∣ z ) p_\theta(\mathbf{x} \vert \mathbf{z}) pθ(xz) 的条件输入 z \mathbf{z} z 应用强大的数据增强。条件噪声有助于减少流水线设置中的复合误差。在用于高分辨率图像生成的扩散建模中,U 型网络是模型架构的常见选择。

在这里插入图片描述
图 15:A cascaded pipeline of multiple diffusion models at increasing resolutions.

他们发现,最有效的噪声应用方式是在低分辨率时使用高斯噪声,在高分辨率时使用高斯模糊。此外,他们还探索了两种条件增强形式,这些形式只需对训练过程进行小幅修改。需注意的是,条件噪声仅在训练时应用,推理时不使用。

  • 截断式条件增强会在低分辨率时,于步骤 t > 0 t > 0 t>0 提前终止扩散过程。
  • 非截断式条件增强会在低分辨率时运行完整的反向扩散过程直至步骤 0,然后通过 z t ∼ q ( x t ∣ x 0 ) \mathbf{z}_t \sim q(\mathbf{x}_t \vert \mathbf{x}_0) ztq(xtx0) 对其进行破坏,再将被破坏的 z t \mathbf{z}_t zt 输入到超分辨率模型中。

两阶段扩散模型 unCLIP(拉梅什等人,2022 年)大量利用 CLIP 文本编码器来高质量地生成文本引导的图像。给定一个预训练的 CLIP 模型 c c c 以及扩散模型的配对训练数据 ( x , y ) (\mathbf{x}, y) (x,y),其中 x x x 是一幅图像, y y y 是相应的图像说明,我们可以分别计算 CLIP 文本嵌入和图像嵌入,即 c t ( y ) \mathbf{c}^t(y) ct(y) c i ( x ) \mathbf{c}^i(\mathbf{x}) ci(x) 。unCLIP 并行学习两个模型:

  • 一个先验模型 P ( c i ∣ y ) P(\mathbf{c}^i \vert y) P(ciy):给定文本 y y y 时,输出 CLIP 图像嵌入 c i \mathbf{c}^i ci
  • 一个解码器 P ( x ∣ c i , [ y ] ) P(\mathbf{x} \vert \mathbf{c}^i, [y]) P(xci,[y]):给定 CLIP 图像嵌入 c i \mathbf{c}^i ci 以及(可选的)原始文本 y y y 时,生成图像 x \mathbf{x} x
    这两个模型能够实现条件生成,原因是

P ( x ∣ y ) = P ( x , c i ∣ y ) ⏟ c i is deterministic given  x = P ( x ∣ c i , y ) P ( c i ∣ y ) \underbrace{P(\mathbf{x} \vert y) = P(\mathbf{x}, \mathbf{c}^i \vert y)}_{\mathbf{c}^i\text{ is deterministic given }\mathbf{x}} = P(\mathbf{x} \vert \mathbf{c}^i, y)P(\mathbf{c}^i \vert y) ci is deterministic given x P(xy)=P(x,ciy)=P(xci,y)P(ciy)

在这里插入图片描述

  • 图 :The architecture of unCLIP

unCLIP 遵循两阶段图像生成过程:

    1. 给定一段文本 y y y,首先使用 CLIP 模型生成文本嵌入 c t ( y ) \mathbf{c}^t(y) ct(y)。利用 CLIP 潜在空间能够通过文本实现零样本图像操控。
    1. 一个扩散或自回归先验 P ( c i ∣ y ) P(\mathbf{c}^i \vert y) P(ciy) 对这个 CLIP 文本嵌入进行处理,构建一个图像先验,然后一个扩散解码器 P ( x ∣ c i , y ) P(\mathbf{x} \vert \mathbf{c}^i, y) P(xci,y) 根据该先验生成一幅图像。这个解码器还能以一幅图像作为输入条件,生成图像变体,同时保留其风格和语义。

与 unCLIP 使用 CLIP 模型不同,Imagen(萨哈里亚等人,2022 年)使用预训练的大型语言模型(即固定的 T5-XXL 文本编码器)对用于图像生成的文本进行编码。总体趋势是,模型规模越大,图像质量和文本与图像的对齐度越高。他们发现,T5 - XXL 和 CLIP 文本编码器在 MS-COCO 数据集上表现相近,但在 DrawBench(涵盖 11 个类别的提示词集合)上,人工评估更倾向于 T5-XXL。
在应用无分类器引导时,增加某个参数(此处你未提及具体参数)可能会使文本与图像的对齐度提高,但图像保真度下降。他们发现这是由于训练 - 测试不匹配导致的,也就是说,因为训练数据 x \mathbf{x} x 处于某个范围 [ − 1 , 1 ] [-1, 1] [1,1] 内,测试数据也应该在这个范围内。为此引入了两种阈值策略:

  • 静态阈值处理:将预测值 x \mathbf{x} x 裁剪到 [ − 1 , 1 ] [-1, 1] [1,1]
  • 动态阈值处理:在每个采样步骤中,将计算 s s s 为某个百分比的绝对像素值;如果 s > 1 s > 1 s>1,将预测值裁剪到 [ − s , s ] [-s, s] [s,s] 并除以 s s s

Imagen 对 U-Net 的一些设计进行了修改,以构建高效的 U-Net。

  • 参数调整:通过为较低分辨率添加更多残差连接,将模型参数从高分辨率模块转移到低分辨率模块。
  • 跳跃连接缩放:按比例 1 / 2 1/\sqrt{2} 1/2 缩放跳跃连接。
  • 操作顺序调整:颠倒下采样(将其移到卷积之前)和上采样操作(将其移到卷积之后)的顺序,以提高前向传播的速度。

他们发现,噪声条件增强、动态阈值处理和高效 U-Net 对图像质量至关重要,但扩展文本编码器的大小比扩展 U-Net 的大小更为重要。

Model Architecture

扩散模型有两种常见的骨干网络架构选择:U-Net 和 Transformer。
U-Net(罗内贝格等人,2015 年)由一个下采样堆栈和一个上采样堆栈组成。

  • 下采样:每一步都重复应用两个 3×3 卷积(无填充卷积),每个卷积之后接一个 ReLU 激活函数和一个步长为 2 的 2×2 最大池化层。在每个下采样步骤中,特征通道的数量翻倍。
  • 上采样:每一步都先对特征图进行上采样,然后接一个 2×2 卷积,每一步都会使特征通道的数量减半。
  • 捷径连接(Shortcuts):捷径连接将下采样堆栈中相应层的特征进行拼接,为上采样过程提供必要的高分辨率特征。

为了实现基于诸如 Canny 边缘、霍夫线、用户涂鸦、人体骨骼、分割图、深度和法线等额外图像信息进行图像合成,ControlNet(张等人,2023 年)对架构进行了改动。具体做法是在 U-Net 的每个编码器层中添加 “夹心” 式零卷积层,这些零卷积层使用原始模型权重的可训练副本。确切地说,对于一个神经网络模块 F θ ( . ) \mathcal{F}_\theta(.) Fθ(.),ControlNet 执行以下操作:

  • 首先,冻结原始模块的原始参数 θ \theta θ
  • 将其克隆为一个具有可训练参数 θ c \theta_c θc 以及一个额外条件向量 c \mathbf{c} c 的副本。
  • 使用两个零卷积层,分别记为 Z θ z 1 ( . ; . ) \mathcal{Z}_{\theta_{z1}}(.;.) Zθz1(.;.) Z θ z 2 ( . ; . ) \mathcal{Z}_{\theta_{z2}}(.;.) Zθz2(.;.),这两个层是 1×1 卷积层,权重和偏置都初始化为零,用于连接这两个模块。零卷积层在初始训练步骤中通过消除作为梯度的随机噪声来保护主干网络。

在这里插入图片描述
图:The ControlNet architecture.

最终输出为: y c = F θ ( x ) + Z θ z 2 ( F θ c ( x + Z θ z 1 ( c ) ) ) \mathbf{y}_c = \mathcal{F}_\theta(\mathbf{x}) + \mathcal{Z}_{\theta_{z2}}(\mathcal{F}_{\theta_c}(\mathbf{x} + \mathcal{Z}_{\theta_{z1}}(\mathbf{c}))) yc=Fθ(x)+Zθz2(Fθc(x+Zθz1(c)))

用于扩散建模的扩散变换器(DiT;皮布尔斯和谢,2023 年)在潜在图像块上进行操作,采用与潜在扩散模型(LDM)相同的设计空间。DiT 具有以下设置:

    1. 将输入 z \mathbf{z} z 的潜在表示作为 DiT 的输入。
    1. 将大小为 I × I × C I \times I \times C I×I×C 的噪声潜在表示分割成大小为 p p p 的图像块,并将其转换为大小为 ( I / p ) 2 (I/p)^2 (I/p)2 的图像块序列。
    1. 然后,这个标记序列通过变换器模块。他们探索了三种不同的设计,以确定如何根据诸如时间步 t t t 或类别标签 c c c 等上下文信息进行生成。在这三种设计中,adaLN(自适应层归一化)-Zero 的效果最佳,优于上下文条件和交叉注意力模块。缩放和平移参数 γ \gamma γ β \beta β t t t c c c 的嵌入向量之和回归得到。维度缩放参数 α \alpha α 同样通过回归得到,并在 DiT 模块内的任何残差连接之前立即应用。
    1. 变换器解码器输出噪声预测和输出对角协方差预测。

变换器架构易于扩展,这一点广为人知。根据实验,这是 DiT 的最大优势之一,因为其性能随着计算量的增加而提升,并且更大的 DiT 模型计算效率更高。

在这里插入图片描述

图:The Diffusion Transformer (DiT) architecture.

参考:
What are Diffusion Models?
Weng, Lilian. (Jul 2021). What are diffusion models? Lil’Log. https://lilianweng.github.io/posts/2021-07-11-diffusion-models/.

References

[1] Jascha Sohl-Dickstein et al. “Deep Unsupervised Learning using Nonequilibrium Thermodynamics.” ICML 2015.

[2] Max Welling & Yee Whye Teh. “Bayesian learning via stochastic gradient langevin dynamics.” ICML 2011.

[3] Yang Song & Stefano Ermon. “Generative modeling by estimating gradients of the data distribution.” NeurIPS 2019.

[4] Yang Song & Stefano Ermon. “Improved techniques for training score-based generative models.” NeuriPS 2020.

[5] Jonathan Ho et al. “Denoising diffusion probabilistic models.” arxiv Preprint arxiv:2006.11239 (2020). [code]

[6] Jiaming Song et al. “Denoising diffusion implicit models.” arxiv Preprint arxiv:2010.02502 (2020). [code]

[7] Alex Nichol & Prafulla Dhariwal. “Improved denoising diffusion probabilistic models” arxiv Preprint arxiv:2102.09672 (2021). [code]

[8] Prafula Dhariwal & Alex Nichol. “Diffusion Models Beat GANs on Image Synthesis.” arxiv Preprint arxiv:2105.05233 (2021). [code]

[9] Jonathan Ho & Tim Salimans. “Classifier-Free Diffusion Guidance.” NeurIPS 2021 Workshop on Deep Generative Models and Downstream Applications.

[10] Yang Song, et al. “Score-Based Generative Modeling through Stochastic Differential Equations.” ICLR 2021.

[11] Alex Nichol, Prafulla Dhariwal & Aditya Ramesh, et al. “GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models.” ICML 2022.

[12] Jonathan Ho, et al. “Cascaded diffusion models for high fidelity image generation.” J. Mach. Learn. Res. 23 (2022): 47-1.

[13] Aditya Ramesh et al. “Hierarchical Text-Conditional Image Generation with CLIP Latents.” arxiv Preprint arxiv:2204.06125 (2022).

[14] Chitwan Saharia & William Chan, et al. “Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding.” arxiv Preprint arxiv:2205.11487 (2022).

[15] Rombach & Blattmann, et al. “High-Resolution Image Synthesis with Latent Diffusion Models.” CVPR 2022.code

[16] Song et al. “Consistency Models” arxiv Preprint arxiv:2303.01469 (2023)

[17] Salimans & Ho. “Progressive Distillation for Fast Sampling of Diffusion Models” ICLR 2022.

[18] Ronneberger, et al. “U-Net: Convolutional Networks for Biomedical Image Segmentation” MICCAI 2015.

[19] Peebles & Xie. “Scalable diffusion models with transformers.” ICCV 2023.

[20] Zhang et al. “Adding Conditional Control to Text-to-Image Diffusion Models.” arxiv Preprint arxiv:2302.05543 (2023).

相关文章:

扩散模型(三)

相关阅读: 扩散模型(一) 扩散模型(二) Latent Variable Space 潜在扩散模型(LDM;龙巴赫、布拉特曼等人,2022 年)在潜在空间而非像素空间中运行扩散过程,这…...

探索数学:从起源到未来的无尽旅程

数学的定义与本质 数学,这门古老而又充满魅力的学科,自人类文明诞生之初便如影随形。然而,要精准地定义数学并非易事,不同的学者从各自的视角出发,给出了多样的阐释。 亚里士多德将数学定义为 “数量科学”&#xff…...

OpenAI发布o3-mini:免费推理模型,DeepSeek引发的反思

引言 在人工智能领域,OpenAI再次引领潮流,推出了全新的推理模型系列——o3-mini。这一系列包括low、medium和high三个版本,旨在进一步推动低成本推理的发展。与此同时,OpenAI的CEO奥特曼也在Reddit的“有问必答”活动中罕见地公开…...

React中使用箭头函数定义事件处理程序

React中使用箭头函数定义事件处理程序 为什么使用箭头函数?1. 传递动态参数2. 避免闭包问题3. 确保每个方块的事件处理程序是独立的4. 代码可读性和维护性 示例代码总结 在React开发中,处理事件是一个常见的任务。特别是当我们需要传递动态参数时&#x…...

自制虚拟机(C/C++)(三、做成标准GUI Windows软件,扩展指令集,直接支持img软盘)

开源地址:VMwork 要使终端不弹出&#xff0c; #pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup") 还要实现jmp near 0x01类似的 本次的main.cpp #include <graphics.h> #include <conio.h> #include <windows.h> #includ…...

C# 语言基础全面解析

.NET学习资料 .NET学习资料 .NET学习资料 一、引言 C# 是一种功能强大、面向对象且类型安全的编程语言&#xff0c;由微软开发&#xff0c;广泛应用于各种类型的软件开发&#xff0c;从桌面应用、Web 应用到游戏开发等领域。本文将全面介绍 C# 语言的基础知识&#xff0c;帮…...

MySQL的覆盖索引

MySQL的覆盖索引 前言 当一个索引包含了查询所需的全部字段时&#xff0c;就可以提高查询效率&#xff0c;这样的索引又被称之为覆盖索引。 以MySQL常见的三种存储引擎为例&#xff1a;InnoDB、MyISAM、Memory&#xff0c;对于覆盖索引提高查询效率的方式均不同&#xff0c;…...

Hutool工具类

Hutool 是一个非常流行的 Java 工具类库&#xff0c;它提供了丰富的功能来简化开发中的常见任务&#xff0c;比如文件操作、加密、日期处理、字符串操作、数据库工具等。它是一个轻量级的工具库&#xff0c;可以减少开发者编写常用代码的工作量&#xff0c;提高开发效率。 主要…...

C++模板编程——可变参函数模板之折叠表达式

目录 1. 什么是折叠表达式 2. 一元左折 3. 一元右折 4. 二元左折 5. 二元右折 6. 后记 上一节主要讲解了可变参函数模板和参数包展开&#xff0c;这一节主要讲一下折叠表达式。 1. 什么是折叠表达式 折叠表达式是C17中引入的概念&#xff0c;引入折叠表达式的目的是为了…...

使用MATLAB进行雷达数据采集可视化

本文使用轮趣科技N10雷达&#xff0c;需要源码可在后台私信或者资源自取 1. 项目概述 本项目旨在通过 MATLAB 读取 N10 激光雷达 的数据&#xff0c;并进行 实时 3D 点云可视化。数据通过 串口 传输&#xff0c;并经过解析后转换为 三维坐标点&#xff0c;最终使用 pcplayer 进…...

【Linux系统】信号:信号保存 / 信号处理、内核态 / 用户态、操作系统运行原理(中断)

理解Linux系统内进程信号的整个流程可分为&#xff1a; 信号产生 信号保存 信号处理 上篇文章重点讲解了 信号的产生&#xff0c;本文会讲解信号的保存和信号处理相关的概念和操作&#xff1a; 两种信号默认处理 1、信号处理之忽略 ::signal(2, SIG_IGN); // ignore: 忽略#…...

在C语言多线程环境中使用互斥量

如果有十个银行账号通过不同的十条线程同时向同一个账号转账时&#xff0c;如果没有很好的机制保证十个账号依次存入&#xff0c;那么这些转账可能出问题。我们可以通过互斥量来解决。 C标准库提供了这个互斥量&#xff0c;只需要引入threads.头文件。 互斥量就像是一把锁&am…...

PHP代码审计学习02

目录 代码审计一般思路 Beescms代码审计&#xff08;upload&#xff09; Finecms基于前台MVC任意文件上传挖掘思路 CLTPHP基于thinkphp5框架的文件上传挖掘思路 今天来看PHP有框架MVC类&#xff0c;文件上传&#xff0c;断点调试挖掘。 同样还是有关键字搜索和功能点抓包两…...

基于微信小程序的医院预约挂号系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

大厂面试题备份20250201

20250201 面试策略 如果三面往后遇到传说中让人忍受不了的业余面试官&#xff0c;就舔着苟过去&#xff0c;入职大概率见不着他&#xff0c;但一二面遇到&#xff0c;反问环节就主动说不够match&#xff0c;让释放流程。 机器/深度学习 百面机器学习 5.4 通用CS 计算机网…...

Spring Boot 实例解析:HelloWorld 探究

POM 文件剖析&#xff1a; 父项目&#xff1a; <parent><groupId>org.springframework.boot</groupId><artifactId>spring‐boot‐starter‐parent</artifactId><version>1.5.9.RELEASE</version> </parent> 他的父项目是 <…...

【课题推荐】基于t分布的非高斯滤波框架在水下自主导航中的应用研究

水下自主导航系统在海洋探测、环境监测及水下作业等领域具有广泛的应用。然而&#xff0c;复杂的水下环境常常导致传感器输出出现野值噪声&#xff0c;这些噪声会严重影响导航信息融合算法的精度&#xff0c;甚至导致系统发散。传统的卡尔曼滤波算法基于高斯噪声假设&#xff0…...

【C++语言】卡码网语言基础课系列----12. 位置互换

文章目录 练习题目位置互换具体代码实现 小白寄语诗词共勉 练习题目 位置互换 题目描述&#xff1a; 给定一个长度为偶数位的字符串&#xff0c;请编程实现字符串的奇偶位互换。 输入描述&#xff1a; 输入包含多组测试数据。 输入的第一行是一个整数n&#xff0c;表示有测试…...

洛谷的更多功能(不会像其他文章那样复杂且仅支持Edge浏览器)

第一步&#xff1a;下载《洛谷美化 (1).zip》文件夹。 会出现这样的文件夹&#xff1a; 注意&#xff1a;Edge.txt和洛谷前提1.txt是一样的哟&#xff01; 第二步&#xff1a;篡改猴 先打开Edge.txt或者是洛谷前提1.txt文件&#xff0c;打开后复制粘贴到你的Edge浏览器并打开…...

C++编程语言:抽象机制:模板(Bjarne Stroustrup)

目录 23.1 引言和概观(Introduction and Overview) 23.2 一个简单的字符串模板(A Simple String Template) 23.2.1 模板的定义(Defining a Template) 23.2.2 模板实例化(Template Instantiation) 23.3 类型检查(Type Checking) 23.3.1 类型等价(Type Equivalence) …...

女生年薪12万,算不算属于高收入人群

在繁华喧嚣的都市中&#xff0c;我们时常会听到关于收入、高薪与生活质量等话题的讨论。尤其是对于年轻女性而言&#xff0c;薪资水平不仅关乎个人价值的体现&#xff0c;更直接影响到生活质量与未来的规划。那么&#xff0c;女生年薪12万&#xff0c;是否可以被划入高收入人群…...

2181、合并零之间的节点

2181、[中等] 合并零之间的节点 1、问题描述&#xff1a; 给你一个链表的头节点 head &#xff0c;该链表包含由 0 分隔开的一连串整数。链表的 开端 和 末尾 的节点都满足 Node.val 0 。 对于每两个相邻的 0 &#xff0c;请你将它们之间的所有节点合并成一个节点&#xff…...

Immutable设计 SimpleDateFormat DateTimeFormatter

专栏系列文章地址&#xff1a;https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标&#xff1a; 理解不可变设计模式&#xff0c;时间format有线程安全要求的注意使用DateTimeFormatter 目录 ImmutableSimpleDateFormat 非线程安全可以synchronized解决&a…...

【网络】传输层协议TCP(重点)

文章目录 1. TCP协议段格式2. 详解TCP2.1 4位首部长度2.2 32位序号与32位确认序号&#xff08;确认应答机制&#xff09;2.3 超时重传机制2.4 连接管理机制(3次握手、4次挥手 3个标志位)2.5 16位窗口大小&#xff08;流量控制&#xff09;2.6 滑动窗口2.7 3个标志位 16位紧急…...

17.[前端开发]Day17-形变-动画-vertical-align

1 transform CSS属性 - transform transform的用法 表示一个或者多个 不用记住全部的函数&#xff0c;只用掌握这四个常用的函数即可 位移 - translate <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta ht…...

LeetCode435周赛T2贪心

题目描述 给你一个由字符 N、S、E 和 W 组成的字符串 s&#xff0c;其中 s[i] 表示在无限网格中的移动操作&#xff1a; N&#xff1a;向北移动 1 个单位。S&#xff1a;向南移动 1 个单位。E&#xff1a;向东移动 1 个单位。W&#xff1a;向西移动 1 个单位。 初始时&#…...

陆游的《诗人苦学说》:从藻绘到“功夫在诗外”(中英双语)mastery lies beyond poetry

陆游的《诗人苦学说》&#xff1a;从藻绘到“功夫在诗外” 今天看万维钢的《万万没想到》一书&#xff0c;看到陆游的功夫在诗外的句子&#xff0c;特意去查找这首诗的原文。故而有此文。 我国学人还往往过分强调“功夫在诗外”这句陆游的名言&#xff0c;认为提升综合素质是一…...

AI模型平台之——ModelScope(魔搭)

ModelScope 是什么&#xff1f; ModelScope 是一个由阿里巴巴达摩院推出的开源模型库和工具集&#xff0c;旨在为开发者提供高效、便捷的机器学习模型和工具。ModelScope 提供了丰富的预训练模型、数据集和工具&#xff0c;支持多种任务和应用场景&#xff0c;如自然语言处理、…...

GIt使用笔记大全

Git 使用笔记大全 1. 安装 Git 在终端或命令提示符中&#xff0c;输入以下命令检查是否已安装 Git&#xff1a; git --version如果未安装&#xff0c;可以从 Git 官方网站 下载并安装适合你操作系统的版本。 2. 配置 Git 首次使用 Git 时&#xff0c;需要配置用户名和邮箱…...

42【文件名的编码规则】

我们在学习的过程中&#xff0c;写出数据或读取数据时需要考虑编码类型 火山采用&#xff1a;UTF-16 易语言采用&#xff1a;GBK php采用&#xff1a;UTF-8 那么我们写出的文件名应该是何种编码的&#xff1f;比如火山程序向本地写出一个“测试.txt”&#xff0c;理论上这个“测…...

Linux网络 HTTPS 协议原理

概念 HTTPS 也是一个应用层协议&#xff0c;不过 是在 HTTP 协议的基础上引入了一个加密层。因为 HTTP的内容是明文传输的&#xff0c;明文数据会经过路由器、wifi 热点、通信服务运营商、代理服务器等多个物理节点&#xff0c;如果信息在传输过程中被劫持&#xff0c;传输的…...

Vue.js组件开发-实现全屏手风琴幻灯片切换特效

使用 Vue 实现全屏手风琴幻灯片切换特效 步骤概述 创建 Vue 项目&#xff1a;使用 Vue CLI 创建一个新的 Vue 项目。设计组件结构&#xff1a;创建一个手风琴幻灯片组件&#xff0c;包含幻灯片项和切换逻辑。实现样式&#xff1a;使用 CSS 实现全屏和手风琴效果。添加交互逻辑…...

数据库、数据仓库、数据湖有什么不同

数据库、数据仓库和数据湖是三种不同的数据存储和管理技术&#xff0c;它们在用途、设计目标、数据处理方式以及适用场景上存在显著差异。以下将从多个角度详细说明它们之间的区别&#xff1a; 1. 数据结构与存储方式 数据库&#xff1a; 数据库主要用于存储结构化的数据&…...

MLM之MiniCPM-o:MiniCPM-o的简介(涉及MiniCPM-o 2.6和MiniCPM-V 2.6)、安装和使用方法、案例应用之详细攻略

MLM之MiniCPM-o&#xff1a;MiniCPM-o的简介(涉及MiniCPM-o 2.6和MiniCPM-V 2.6)、安装和使用方法、案例应用之详细攻略 目录 MiniCPM-o的简介 0、更新日志 1、MiniCPM-o系列模型特点 MiniCPM-o 2.6 的主要特点 MiniCPM-V 2.6的主要特点 2、MiniCPM-o系列模型架构 MiniC…...

【Conda 和 虚拟环境详细指南】

Conda 和 虚拟环境的详细指南 什么是 Conda&#xff1f; Conda 是一个开源的包管理和环境管理系统&#xff0c;支持多种编程语言&#xff08;如Python、R等&#xff09;&#xff0c;最初由Continuum Analytics开发。 主要功能&#xff1a; 包管理&#xff1a;安装、更新、删…...

Rust 控制流语法详解

Rust 控制流语法详解 控制流是编程语言中用于控制代码执行顺序的重要机制。Rust 提供了多种控制流语法&#xff0c;包括条件判断&#xff08;if、else if&#xff09;、循环&#xff08;loop、while、for&#xff09;等。本文将详细介绍这些语法&#xff0c;并通过示例展示它们…...

VLC-Qt: Qt + libVLC 的开源库

参考链接 https://blog.csdn.net/u012532263/article/details/102737874...

洛谷 P5146 最大差值 C语言

P5146 最大差值 - 洛谷 | 计算机科学教育新生态 题目描述 HKE 最近热衷于研究序列&#xff0c;有一次他发现了一个有趣的问题&#xff1a; 对于一个序列 A1​,A2​,…,An​&#xff0c;找出两个数 i,j&#xff08;1≤i<j≤n&#xff09;&#xff0c;使得 Aj​−Ai​ 最大。…...

Zabbix 推送告警 消息模板 美化(钉钉Webhook机器人、邮件)

目前网络上已经有很多关于Zabbix如何推送告警信息到钉钉机器人、到邮件等文章。 但是在搜索下来&#xff0c;发现缺少了对告警信息的美化的文章。 本文不赘述如何对Zabbix对接钉钉、对接邮件&#xff0c;仅介绍我采用的美化消息模板的内容。 活用AI工具可以减轻很多学习、脑力负…...

MySQL数据库环境搭建

下载MySQL 官网&#xff1a;https://downloads.mysql.com/archives/installer/ 下载社区版就行了。 安装流程 看b站大佬的视频吧&#xff1a;https://www.bilibili.com/video/BV12q4y1477i/?spm_id_from333.337.search-card.all.click&vd_source37dfd298d2133f3e1f3e3c…...

书生大模型实战营7

文章目录 L1——基础岛提示词工程实践什么是Prompt(提示词)什么是提示工程提示设计框架CRISPECO-STAR LangGPT结构化提示词LangGPT结构编写技巧构建全局思维链保持上下文语义一致性有机结合其他 Prompt 技巧 常用的提示词模块 浦语提示词工程实践(LangGPT版)自动化生成LangGPT提…...

Spark的基本概念

个人博客地址&#xff1a;Spark的基本概念 | 一张假钞的真实世界 编程接口 RDD&#xff1a;弹性分布式数据集&#xff08;Resilient Distributed Dataset &#xff09;。Spark2.0之前的编程接口。Spark2.0之后以不再推荐使用&#xff0c;而是被Dataset替代。Dataset&#xff…...

langchain基础(二)

一、输出解析器&#xff08;Output Parser&#xff09; 作用&#xff1a;&#xff08;1&#xff09;让模型按照指定的格式输出&#xff1b; &#xff08;2&#xff09;解析模型输出&#xff0c;提取所需的信息 1、逗号分隔列表 CommaSeparatedListOutputParser&#xff1a;…...

读取要素类中的几何信息

在arcpy中,每个要素都有相关的集合对象,都可以在游标中访问.本节将使用SearchCursor和Polyon对象来读取面要素类几何信息. 操作方法 1.打开IDLE,新建一个脚本 2.导入arcpy模块 3.设置输入要素类为目标面要素类 infc "<>" 4.传入输入要素类创建SearchCurs…...

洛谷 P1130 红牌 C语言

题目描述 某地临时居民想获得长期居住权就必须申请拿到红牌。获得红牌的过程是相当复杂&#xff0c;一共包括 N 个步骤。每一步骤都由政府的某个工作人员负责检查你所提交的材料是否符合条件。为了加快进程&#xff0c;每一步政府都派了 M 个工作人员来检查材料。不幸的是&…...

五. Redis 配置内容(详细配置说明)

五. Redis 配置内容(详细配置说明) 文章目录 五. Redis 配置内容(详细配置说明)1. Units 单位配置2. INCLUDES (包含)配置3. NETWORK (网络)配置3.1 bind(配置访问内容)3.2 protected-mode (保护模式)3.3 port(端口)配置3.4 timeout(客户端超时时间)配置3.5 tcp-keepalive()配置…...

LeetCode题练习与总结:有效三角形的个数--611

一、题目描述 给定一个包含非负整数的数组 nums &#xff0c;返回其中可以组成三角形三条边的三元组个数。 示例 1: 输入: nums [2,2,3,4] 输出: 3 解释:有效的组合是: 2,3,4 (使用第一个 2) 2,3,4 (使用第二个 2) 2,2,3示例 2: 输入: nums [4,2,3,4] 输出: 4 提示: 1 &…...

【multi-agent-system】ubuntu24.04 安装uv python包管理器及安装依赖

uv包管理器是跨平台的 参考sudo apt-get update sudo apt-get install -y build-essential我的开发环境是ubuntu24.04 (base) root@k8s-master-pfsrv:/home/zhangbin/perfwork/01_ai/08_multi-agent-system# uv venv 找不到命令 “uv”,但可以通过以下软件...

【自然语言处理(NLP)】深度学习架构:Transformer 原理及代码实现

文章目录 介绍Transformer核心组件架构图编码器&#xff08;Encoder&#xff09;解码器&#xff08;Decoder&#xff09; 优点应用代码实现导包基于位置的前馈网络残差连接后进行层规范化编码器 Block编码器解码器 Block解码器训练预测 个人主页&#xff1a;道友老李 欢迎加入社…...

STM32单片机学习记录(2.2)

一、STM32 13.1 - PWR简介 1. PWR&#xff08;Power Control&#xff09;电源控制 &#xff08;1&#xff09;PWR负责管理STM32内部的电源供电部分&#xff0c;可以实现可编程电压监测器和低功耗模式的功能&#xff1b; &#xff08;2&#xff09;可编程电压监测器&#xff08;…...