AIGC视频生成模型:慕尼黑大学、NVIDIA等的Video LDMs模型
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍慕尼黑大学携手 NVIDIA 等共同推出视频生成模型 Video LDMs。NVIDIA 在 AI 领域的卓越成就家喻户晓,而慕尼黑大学同样不容小觑,他们深度参与了最初 SD 系列图像生成模型的研发,在扩散模型领域,展现出了强劲实力 。
🌺优质专栏回顾🌺:
- 机器学习笔记
- 深度学习笔记
- 多模态论文笔记
- AIGC—图像
文章目录
- 论文
- 摘要
- 1. 引言
- 贡献
- 2. 背景
- 扩散模型(DMs)
- 潜在扩散模型(LDMs)
- 3. 潜在视频扩散模型
- 3.1 将潜在图像转变为视频生成器
- 3.1.1 时间自动编码器微调
- 3.2 长视频生成的预测模型
- 3.3 高帧率的时间插值
- 3.4 超分辨率模型的时间微调
- 总结
- 4. 实验
- 数据集
- 评估指标
- 模型架构和采样
- 4.1 高分辨率驾驶视频合成
- 4.1.1 消融研究
- 4.1.2 驾驶场景模拟
- 4.2 使用稳定扩散的文本到视频
- 4.2.1 使用DreamBooth的个性化文本到视频
- 5. 结论
论文
论文地址:https://arxiv.org/pdf/2304.08818
项目地址:https://research.nvidia.com/labs/toronto-ai/VideoLDM/
摘要
在图像生成领域,潜在扩散模型(LDMs)取得了重大成功,通过在低维潜在空间中训练扩散模型,避免了过高的计算需求的同时,能够实现高质量的图像合成
本文中,作者将LDM范式应用于高分辨率视频生成领域。过程如下:
- 首先仅在图像上预训练一个LDM;
- 然后,通过在潜在空间扩散模型中引入时间维度;
- 在编码后的图像序列(即视频)上进行微调,将图像生成器转变为视频生成器。
- 对扩散模型的上采样器进行时间对齐,将它们转变为时间一致的视频超分辨率模型。
本文中,作者专注于两个实际相关的应用:野外驾驶数据的模拟和基于文本到视频建模的创意内容创作。
这种情况下,可以通过训练一个时间对齐模型,结合预训练图像LDM(如SD系列模型),转变为一个高效且表现力强的文本到视频模型。
1. 引言
1.图像生成模型发展:因基础建模方法突破,图像生成模型备受关注,强大模型基于生成对抗网络、自回归变换器和扩散模型构建,其中扩散模型优势明显,训练目标稳健可扩展且,并且通常比基于变换器的模型参数更少。
2. 视频建模现状:图像领域进展巨大,但视频建模滞后。原因是视频数据训练成本高且缺乏合适数据集,多数视频合成工作只能生成低分辨率短视频,包括之前的视频扩散模型。
3. 研究内容:本文将视频模型应用于实际,生成高分辨率长视频,聚焦两个实际相关问题:一是高分辨率真实世界驾驶数据的视频合成,可用于自动驾驶模拟;二是用于创意内容生成的文本引导视频合成。
4. 研究基础与模型提出:本文基于潜在扩散模型(LDMs)展开研究,提出Video LDMs,将其应用于高分辨率视频生成任务,LDMs可减轻高分辨率图像训练的计算负担。
5. 模型构建方法:
先在大规模图像数据集在图像上预训练Video LDMs(或用现有预训练图像LDMs)。通过在潜在空间DM引入时间维度,固定预训练空间层的同时仅在编码后的图像序列(即视频)上训练这些时间层,将LDM图像生成器转变为视频生成器(图2);
图2. 时间视频微调。我们将预训练的图像扩散模型转变为时间一致的视频生成器。最初,模型合成的一批不同样本是相互独立的。在时间视频微调后,样本在时间上对齐,形成连贯的视频。图中可视化了一个一维玩具分布的扩散模型在微调前后的随机生成过程。为清晰起见,该图对应于像素空间中的对齐。在实践中,我们在LDM的潜在空间中进行对齐,并在应用LDM的解码器后获得视频(见图3)。我们还在像素或潜在空间中对扩散模型上采样器进行视频微调(第3.4节)。
-
微调LDM解码器:在像素空间中实现时间一致性(图3);
图3. 上:在时间解码器微调期间,我们使用固定的编码器处理视频序列,该编码器独立处理帧,并强制跨帧进行时间连贯的重建。我们还使用了一个视频感知判别器。下:在LDMs中,一个扩散模型在潜在空间中进行训练。它合成潜在特征,然后通过解码器将其转换为图像。请注意,下图是针对单个帧的可视化;关于生成时间一致的帧序列的视频微调框架,请见图2。
为了进一步提高空间分辨率,我们还对像素空间和潜在DM上采样器进行时间对齐,这些上采样器广泛用于图像超分辨率,将它们转变为时间一致的视频超分辨率模型。
-
模型优势与实验成果:Video LDMs 能够以计算和内存高效的方式生成全局连贯且长的视频。作者对方法进行了消融实验,实现了最先进的视频质量,并合成了长达几分钟的视频。
-
研究意义:通过对稳定扩散(Stable Diffusion)进行视频微调,将其转变为一个高效且强大的文本到视频生成器,分辨率高达1280×2048。由于在这种情况下我们只需要训练时间对齐层,因此可以使用相对较小的带字幕视频训练集。
贡献
- 提出高效视频生成方法:基于LDMs设计出训练高分辨率、长期一致视频生成模型的高效方式。核心在于借助预训练的图像扩散模型(DMs),插入能让图像在时间上保持一致的时间层,进而将其转化为视频生成器(相关原理参考图2和图3)。
- 优化超分辨率DMs:对常见的超分辨率DMs进行时间微调,提升其在视频处理中的性能表现。
- 驾驶场景视频合成突破:在真实驾驶场景视频的高分辨率合成领域达到当前最优水平,能够生成长达数分钟的视频,满足实际应用中对长时间、高质量驾驶场景模拟等的需求。
- 拓展文本到视频应用:成功将公开的稳定扩散文本到图像LDM改造为功能强大、表现力丰富的文本到视频LDM,极大拓展了模型的应用范围,为文本驱动的视频创作提供有力工具。
- 时间层的通用性验证:验证了学习到的时间层具有通用性,可以和不同的图像模型检查点(如DreamBooth)结合,为个性化视频生成等更多创新应用提供了可能 。
2. 背景
扩散模型(DMs)
扩散模型(DMs)的核心原理,建模与训练方法是DMs通过迭代去噪学习对数据分布 p d a t a ( x ) p_{data}(x) pdata(x)建模,使用去噪分数匹配法训练。过程如下:
- 扩散过程:给定样本 x ∼ p d a t a x \sim p_{data} x∼pdata,构建扩散后的输入 x τ = α τ x + σ τ ϵ x_{\tau}=\alpha_{\tau}x+\sigma_{\tau}\epsilon xτ=ατx+στϵ,其中 ϵ ∼ N ( 0 , I ) \epsilon \sim N(0, I) ϵ∼N(0,I); α τ \alpha_{\tau} ατ和 σ τ \sigma_{\tau} στ定义了一个噪声调度,通过扩散时间 T T T进行参数化,使得对数信噪比 λ τ = log ( α τ 2 / σ τ 2 ) \lambda_{\tau}=\log(\alpha_{\tau}^{2}/\sigma_{\tau}^{2}) λτ=log(ατ2/στ2)单调递减。
- 去噪器优化:去噪器模型 f θ f_{\theta} fθ以扩散后的 x τ x_{\tau} xτ为输入,通过最小化 E x ∼ p d a t a , τ ∼ p τ , ϵ ∼ N ( 0 , I ) [ ∥ y − f θ ( x τ ; c , τ ) ∥ 2 2 ] \mathbb{E}_{x \sim p_{data}, \tau \sim p_{\tau}, \epsilon \sim \mathcal{N}(0, I)}[\left\| y - f_{\theta}(x_{\tau}; c, \tau) \right\|_{2}^{2}] Ex∼pdata,τ∼pτ,ϵ∼N(0,I)[∥y−fθ(xτ;c,τ)∥22]进行优化,其中 c c c是可选的条件信息,例如文本提示,目标向量 y y y要么是随机噪声 ϵ \epsilon ϵ,要么是 v = α τ ϵ − σ τ x v = \alpha_{\tau}\epsilon - \sigma_{\tau}x v=ατϵ−στx。后一种目标(通常称为 v v v预测)是在渐进蒸馏的背景下引入的[73],在经验上通常能使模型更快收敛(在此,我们同时使用这两种目标)。此外, p τ p_{\tau} pτ是扩散时间 τ \tau τ上的均匀分布。 v = α τ ϵ − σ τ x v=\alpha_{\tau}\epsilon - \sigma_{\tau}x v=ατϵ−στx,研究中同时使用这两种目标, p τ p_{\tau} pτ是扩散时间 τ \tau τ上的均匀分布。
扩散模型的核心其实是前向扩散加入噪声以及反向扩散学习/预测前向扩散加入的噪声,并且去除噪声,进而生成的过程,扩散过程可以在连续时间框架中通过随机微分方程来描述【论文:Score-based generative modeling through stochastic differential equations】(也可参考图 2 和图 3 中的框架),但在实践中可以使用固定的离散化方法(DDPM)。
DDPM参考:Diffusion Model 原理
TODO:Score-based generative modeling through stochastic differential equations
最大扩散时间通常选择为使得输入数据完全被扰动为高斯随机噪声,并且可以从这种高斯噪声初始化一个迭代生成去噪过程,该过程使用学习到的去噪器 f θ f_{\theta} fθ来合成新的数据。在此,作者使用 p τ ∼ U { 0 , 1000 } p_{\tau} \sim U\{0, 1000\} pτ∼U{0,1000},并依赖于方差保持噪声调度,对于该调度, σ τ 2 = 1 − α τ 2 \sigma_{\tau}^{2}=1-\alpha_{\tau}^{2} στ2=1−ατ2。
在本文的研究中,作者设定 p τ ∼ U { 0 , 1000 } p_{\tau} \sim U\{0, 1000\} pτ∼U{0,1000},这意味着扩散时间 τ \tau τ是在0到1000这个区间内均匀分布的随机变量。这种均匀分布决定了在扩散过程中,不同扩散时间被选取的概率是相等的。
同时,作者采用了方差保持噪声调度策略。在这种策略下,有一个重要的公式 σ τ 2 = 1 − α τ 2 \sigma_{\tau}^{2}=1-\alpha_{\tau}^{2} στ2=1−ατ2。这个公式定义了噪声强度随时间的变化关系, σ τ \sigma_{\tau} στ代表在扩散时间为 τ \tau τ时添加的噪声标准差,它决定了噪声的强度,而 α τ \alpha_{\tau} ατ则与扩散过程的其他特性相关。随着 τ \tau τ在0到1000之间取值变化, α τ \alpha_{\tau} ατ和 σ τ \sigma_{\tau} στ也会相应改变,从而调整噪声强度。例如,在扩散初期, τ \tau τ可能取较大值, σ τ \sigma_{\tau} στ较大,添加的噪声较多,数据被扰动得更剧烈;随着扩散进行, τ \tau τ逐渐减小, σ τ \sigma_{\tau} στ变小,噪声强度降低,去噪器 f θ f_{\theta} fθ逐步将数据恢复成有意义的内容(详细信息见附录F和H)。
潜在扩散模型(LDMs)
上节介绍的扩散模型实际上是在像素空间进行的。而潜在扩散模型(LDMs)在计算和内存效率上优于像素空间扩散模型(DMs),简要介绍如下:
- 提升效率的原理:先训练压缩模型,把输入图像转换到复杂度较低的空间低维潜在空间,在此空间可高保真重建原始数据,以此提升计算和内存效率。
- 实现方式:实际通过正则化自动编码器(在传统自动编码器基础上引入正则化项,抑制模型过拟合,提升泛化能力)实现,该编码器包含编码器模块 ϵ \epsilon ϵ 和解码器 D D D ,通过 x ^ = D ( ϵ ( x ) ) ≈ x \hat{x}=D(\epsilon(x)) \approx x x^=D(ϵ(x))≈x重建输入图像(见图3)。
- 确保重建质量的方法:在自动编码器训练时添加对抗目标,利用基于补丁的判别器来确保逼真的重建效果。
- 潜在空间DM的优势:在压缩的潜在空间训练DM,公式(1)中的 x x x用潜在表示 z = ϵ ( x ) z = \epsilon(x) z=ϵ(x)替代。相比于像素空间DMs,潜在空间DM的参数数量和内存消耗通常更少。
为了确保逼真的重建,可以在自动编码器训练中添加对抗目标[65],这可以使用基于补丁的判别器来实现[35]。然后,可以在压缩的潜在空间中训练一个DM,并且公式(1)中的 x x x被其潜在表示 z = ϵ ( x ) z = \epsilon(x) z=ϵ(x)所取代。与具有相似性能的相应像素空间DMs相比,这种潜在空间DM在参数数量和内存消耗方面通常较小。
SD系列模型就是在潜在空间进行扩散的,详情可以参考历史文章:SD系列专栏
3. 潜在视频扩散模型
本部分介绍对预训练的图像LDMs(以及DM上采样器)进行视频微调,以实现高分辨率视频合成。
作者假设获取到一个视频数据集 p d a t a p_{data} pdata,使得 x ∈ R T × 3 × H ˉ × W ˉ x \in \mathbb{R}^{T×3×\bar{H}×\bar{W}} x∈RT×3×Hˉ×Wˉ, x ∼ p d a t a x \sim p_{data} x∼pdata是一个包含 T T T个RGB帧的序列,帧的高度和宽度分别为 H ~ \tilde{H} H~和 W ˉ \bar{W} Wˉ。
3.1 将潜在图像转变为视频生成器
转变思路如下:
- 高效训练思路:高效训练视频生成模型的关键在于重用预训练且固定的图像生成模型(由参数 θ \theta θ参数化的LDM)。
- 模型现有结构:构成图像LDM并处理像素维度输入的神经网络层为空间层 l θ i l_{\theta}^{i} lθi( i i i是层索引)。
- 现有模型局限:虽能高质量合成单帧,但直接用于渲染 T T T个连续帧视频会失败,原因是模型无时间感知能力。
- 改进措施:引入额外时间神经网络层 l ϕ i l_{\phi}^{i} lϕi,与空间层 l θ i l_{\theta}^{i} lθi交错排列,学习以时间一致的方式对齐单个帧。
- 最终模型构成:额外时间层 { l ϕ i } i = 1 L \{l_{\phi}^{i}\}_{i = 1}^{L} {lϕi}i=1L定义了视频感知时间骨干网络,完整模型 f θ , ϕ f_{\theta, \phi} fθ,ϕ由空间层和时间层组合而成,如图4。
图4. 左:我们通过插入时间层,将预训练的潜在扩散模型(LDM)转变为视频生成器,这些时间层能够学习将帧对齐为在时间上连贯一致的序列。在优化过程中,图像骨干网络 θ \theta θ保持固定,仅训练时间层 l ϕ x l_{\phi}^{x} lϕx的参数 ϕ \phi ϕ,参见公式(2)。右:在训练期间,基础模型 θ \theta θ将长度为 T T T的输入序列解释为一批图像。对于时间层 l ϕ i l_{\phi}^{i} lϕi,这些批次的图像被重新整形为视频格式。它们的输出 z ′ z' z′会与空间层的输出 z z z相结合,结合时使用一个可学习的融合参数 α \alpha α。在推理过程中,跳过时间层(即 α ϕ i = 1 \alpha_{\phi}^{i}=1 αϕi=1)可得到原始的图像模型。为便于说明,图中仅展示了一个U型网络模块。 B B B表示批量大小, T T T表示序列长度, c c c表示输入通道数, H H H和 W W W表示输入的空间维度。当训练预测模型时(第3.2节), c s cs cs是可选的上下文帧条件。
我们从按帧编码的输入视频 ϵ ( x ) = z ∈ R T × C × H × W \epsilon(x)=z \in \mathbb{R}^{T×C×H×W} ϵ(x)=z∈RT×C×H×W开始,其中 C C C是潜在通道的数量, H H H和 W W W是潜在空间的空间维度。空间层将视频视为一批独立的图像(通过将时间轴转换为批量维度来实现),对于每个时间混合层 l ϕ i l_{\phi}^{i} lϕi,我们按如下方式将其重新调整为视频维度(使用 einops [64] 表示法):
z ′ ← rearrange ( z , ( b t ) c h w → b c t h w ) z' \leftarrow \text{rearrange}(z, (b \ t) \ c \ h \ w \to b \ c \ t \ h \ w) z′←rearrange(z,(b t) c h w→b c t h w)
z ′ ← l ϕ i ( z ′ , c ) z' \leftarrow l_{\phi}^{i}(z', c) z′←lϕi(z′,c)
z ′ ← rearrange ( z ′ , b c t h w → ( b t ) c h w ) z' \leftarrow \text{rearrange}(z', b \ c \ t \ h \ w \to (b \ t) \ c \ h \ w) z′←rearrange(z′,b c t h w→(b t) c h w)
这里为了表述清晰,引入了批量维度 b b b。
- 空间层在批量维度 b b b中独立处理所有 B ⋅ T B \cdot T B⋅T个已编码的视频帧;
- 时间层 l ϕ i ( z ′ , c ) l_{\phi}^{i}(z', c) lϕi(z′,c)则在新的时间维度 t t t中处理整个视频。
- c c c是(可选的)条件信息,比如文本提示。
- 在每个时间层之后,输出 z ′ z' z′会与 z z z按照 α ϕ i z + ( 1 − α ϕ i ) z ′ \alpha_{\phi}^{i}z + (1 - \alpha_{\phi}^{i})z' αϕiz+(1−αϕi)z′的方式进行组合; α ϕ i ∈ [ 0 , 1 ] \alpha_{\phi}^{i} \in [0, 1] αϕi∈[0,1] 表示一个(可学习的)参数(另见附录D)。
在实际应用中,作者实现了两种不同类型的时间混合层(见图4):
- 时间注意力机制;
- 基于三维卷积的残差块。我们使用正弦嵌入[28, 89] 为模型提供时间位置编码。
使用与基础图像模型相同的噪声调度来训练视频感知时间主干网络。重要的是,固定空间层 l θ i l_{\theta}^{i} lθi,仅通过以下公式优化时间层 l ϕ i l_{\phi}^{i} lϕi:
a r g m i n ϕ E x ∼ p d a t a , τ ∼ p τ , ϵ ∼ N ( 0 , I ) [ ∥ y − f θ , ϕ ( z τ ; c , τ ) ∥ 2 2 ] (2) \underset{\phi}{arg min } \mathbb{E}_{x \sim p_{data}, \tau \sim p_{\tau}, \epsilon \sim \mathcal{N}(0, I)}[\left\| y - f_{\theta, \phi}(z_{\tau}; c, \tau) \right\|_{2}^{2}] \tag{2} ϕargminEx∼pdata,τ∼pτ,ϵ∼N(0,I)[∥y−fθ,ϕ(zτ;c,τ)∥22](2)
其中 z T z_{T} zT表示扩散后的编码 z = ϵ ( x ) z = \epsilon(x) z=ϵ(x)。通过这种方式,只需跳过时间块(例如,为每一层设置 α ϕ i = 1 \alpha_{\phi}^{i}=1 αϕi=1),就可以保留原生的图像生成能力。这种策略的一个关键优势是,可以使用巨大的图像数据集来预训练空间层,而通常不太容易获得的视频数据则可以用于专注训练时间层。
3.1.1 时间自动编码器微调
基于预训练图像LDMs构建的视频模型,虽然提高了效率,但LDM的自动编码器仅在图像上进行了训练,在对时间连贯的图像序列进行编码和解码时会导致闪烁伪影。
为了解决这个问题,作者为自动编码器的解码器引入了额外的时间层,并且使用由三维卷积构建的(基于图像块的)时间判别器,在视频数据上对这些时间层进行微调,见图3。需要注意的是,编码器与在图像训练时保持不变,这样一来,在潜在空间中对已编码视频帧进行操作的图像扩散模型就可以重复使用。这一步对于取得良好结果至关重要。
3.2 长视频生成的预测模型
局限性
尽管第3.1节中描述的方法在生成短视频序列方面效率很高,但在合成非常长的视频时却存在局限性。
解决方案
因此,作者还会在给定一定数量(最初的) S S S个上下文帧的情况下,将模型训练为预测模型,通过引入一个时间二进制掩码 m S m_{S} mS来实现这个目标,该掩码会遮蔽模型需要预测的 T − S T - S T−S帧,其中 T T T是如第3.1节中所述的总序列长度。我们将这个掩码和掩码后的编码视频帧输入模型进行条件设定。
具体实现
这些帧通过潜在扩散模型(LDM)的图像编码器 ϵ \epsilon ϵ进行编码,然后与掩码相乘,接着在经过一个可学习的下采样操作处理后,(按通道与掩码进行连接)被输入到时间层 l ϕ i l_{\phi}^{i} lϕi中,见图4。设 c S = ( m S ∘ z , m S ) c_{S}=(m_{S} \circ z, m_{S}) cS=(mS∘z,mS)表示掩码和经过掩码处理(编码后)的图像在空间上连接后的条件信息。那么,公式(2)中的目标函数可表示为:
E x ∼ p d a t a , m S ∼ p S , τ ∼ p τ , ϵ [ ∥ y − f θ , ϕ ( z τ ; c S , c , τ ) ∥ 2 2 ] , ( 3 ) \mathbb{E}_{x \sim p_{data }, m_{S} \sim p_{S}, \tau \sim p_{\tau}, \epsilon}\left[\left\| y-f_{\theta, \phi}\left(z_{\tau} ; c_{S}, c, \tau\right)\right\| _{2}^{2}\right], (3) Ex∼pdata,mS∼pS,τ∼pτ,ϵ[∥y−fθ,ϕ(zτ;cS,c,τ)∥22],(3)
其中 p S p_{S} pS表示(分类的)掩码采样分布。在实际应用中,我们训练的预测模型会基于0个、1个或2个上下文帧来设置条件,这样就可以实现如下所述的无分类器引导。
推理过程
在推理时,为了生成长视频,我们可以迭代地应用采样过程,将最新的预测结果作为新的上下文。过程如下:
- 最初的第一个序列是通过基础图像模型合成单个上下文帧,然后基于该帧生成下一个序列。
- 之后,以两个上下文帧作为条件来对运动进行编码(附录中有详细信息)。
- 为了稳定这个过程,作者发现使用无分类器扩散引导(Classifier-free guidance)是有益的,在采样过程中,通过下式引导模型:
f θ , ϕ ′ ( z τ ; c S ) = f θ , ϕ ( z τ ) + s ⋅ ( f θ , ϕ ( z τ ; c S ) − f θ , ϕ ( z τ ) ) f_{\theta, \phi}'(z_{\tau}; c_{S}) = f_{\theta, \phi}(z_{\tau}) + s \cdot (f_{\theta, \phi}(z_{\tau}; c_{S}) - f_{\theta, \phi}(z_{\tau})) fθ,ϕ′(zτ;cS)=fθ,ϕ(zτ)+s⋅(fθ,ϕ(zτ;cS)−fθ,ϕ(zτ))
其中:- s ≥ 1 s \geq 1 s≥1表示引导尺度,为了可读性,这里省略了对 τ \tau τ和其他信息 c c c的显式条件设定。作者将这种引导方式称为上下文引导。
- 最终的结果 f θ , ϕ ′ ( z τ ; c S ) f_{\theta, \phi}'(z_{\tau}; c_{S}) fθ,ϕ′(zτ;cS) :将原始的无条件预测结果 f θ , ϕ ( z τ ) f_{\theta, \phi}(z_{\tau}) fθ,ϕ(zτ) 与经过条件调整的部分 s ⋅ ( f θ , ϕ ( z τ ; c S ) − f θ , ϕ ( z τ ) ) s \cdot (f_{\theta, \phi}(z_{\tau}; c_{S}) - f_{\theta, \phi}(z_{\tau})) s⋅(fθ,ϕ(zτ;cS)−fθ,ϕ(zτ))
相加
。这意味着最终的结果是在原始预测结果的基础上,根据条件信息 c S c_{S} cS 的影响进行调整,调整的程度由引导尺度 s s s 控制。
这里其实和Transformer的自回归生成相似。上文中,帧和序列不一样,序列是指一系列按时间顺序排列的帧的集合,在第二步中的两个上下文帧的来源于前面已经得到的序列。
3.3 高帧率的时间插值
高分辨率视频需兼具高空间分辨率和高时间分辨率(高帧率)。为此,将其合成过程分为两部分:
- 第3.1和3.2节的过程可生成语义变化大的关键帧,但受内存限制,帧率较低。
- 引入一个额外的模型,其任务是在给定的关键帧之间进行插值。
为了实现这第二点,作者使用第 3.2 节中介绍的掩码 - 条件机制。然而,与预测任务不同的是,需要对插值的帧进行掩码处理 —— 除此之外,该机制保持不变,即图像模型被改进为视频插值模型。
在作者的的实验中,通过在两个给定的关键帧之间预测三帧,从而训练一个将帧率从 T 提升到 4T 的插值模型。为了实现更高的帧率,作者同时在 T 到 4T 和 4T 到 16T 的帧率范围内(使用不同帧率的视频)训练模型,并通过二元条件指定。
作者对预测和插值模型的训练方法受到了近期一些视频扩散模型的启发,这些模型也使用了类似的掩码技术(另见附录C)。
3.4 超分辨率模型的时间微调
为了将其分辨率提升到百万像素级别。作者从级联DMs(SDXL、CogView3等都是级联DMs模型)中获得灵感,使用一个DM将Video LDM的输出再放大4倍。主要做法如下:
- 在驾驶视频合成实验中,使用像素空间DM并将分辨率提升到512×1024;
- 对于文本到视频模型,我们使用LDM上采样器并将分辨率提升到1280×2048。
作者使用噪声增强和噪声水平条件,并通过下式训练超分辨率(SR) 模型 g θ , ϕ g_{\theta, \phi} gθ,ϕ(在图像或潜在空间上):
E x ∼ p d a t a , ( τ , τ γ ) ∼ p τ , ϵ ∼ N ( 0 , I ) [ ∥ y − g θ , ϕ ( x τ ; c τ γ , τ γ , τ ) ∥ 2 2 ] (5) \mathbb{E}_{x \sim p_{data}, (\tau, \tau_{\gamma}) \sim p_{\tau}, \epsilon \sim \mathcal{N}(0, I)}[\left\| y - g_{\theta, \phi}(x_{\tau}; c_{\tau_{\gamma}}, \tau_{\gamma}, \tau) \right\|_{2}^{2}] \tag{5} Ex∼pdata,(τ,τγ)∼pτ,ϵ∼N(0,I)[ y−gθ,ϕ(xτ;cτγ,τγ,τ) 22](5)
其中 c τ γ = α τ γ x + σ τ γ ϵ c_{\tau_{\gamma}} = \alpha_{\tau_{\gamma}}x + \sigma_{\tau_{\gamma}}\epsilon cτγ=ατγx+στγϵ, ϵ ∼ N ( 0 , I ) \epsilon \sim \mathcal{N}(0, I) ϵ∼N(0,I),表示通过连接提供给模型的噪声低分辨率图像, τ γ \tau_{\gamma} τγ是根据噪声调度 α τ \alpha_{\tau} ατ、 σ τ \sigma_{\tau} στ添加到低分辨率图像上的噪声量。
- 噪声增强是指在训练过程中,人为地向输入数据(通常是低分辨率图像)添加噪声的过程。
- 噪声水平条件是指将噪声的水平(强度或数量)作为模型的一个输入条件。在公式中, τ \tau τ 和 τ γ \tau_{\gamma} τγ 就是噪声水平条件,它们是从分布 p τ p_{\tau} pτ 中采样得到的。
- 在上述超分辨率模型的训练公式中,噪声增强和噪声水平条件是相互关联的。首先通过噪声增强将噪声添加到低分辨率图像 x x x 中得到 x τ x_{\tau} xτ,同时使用噪声水平条件中的参数(如 α τ γ \alpha_{\tau_{\gamma}} ατγ 和 σ τ γ \sigma_{\tau_{\gamma}} στγ)计算条件变量 c τ γ c_{\tau_{\gamma}} cτγ,将噪声添加到原始图像上得到一个新的条件输入。这样,超分辨率模型 g θ , ϕ g_{\theta, \phi} gθ,ϕ会根据输入的噪声水平条件,学习在不同噪声环境下如何将低分辨率图像转换为高分辨率图像。
此外还有一个新的问题:独立对视频帧进行上采样会导致时间一致性较差。
- 解决方案:
- 使 SR 模型具有视频感知能力。
- 遵循第3.1节机制,利用空间层 l θ i l_{\theta}^{i} lθi 和时间层 l ϕ i l_{\phi}^{i} lϕi 对缩放器进行视频微调。
- 以长度为 T T T 的低分辨率序列为条件,逐帧连接低分辨率视频图像。
- 仅在图像块上高效训练缩放器,后续通过卷积应用模型。
总结
作者认为LDM与上采样器DM的结合对于高效的高分辨率视频合成是理想的。图5展示了第3.1节至第3.4节所有组件的模型:
图5. Video LDM架构。我们首先生成稀疏关键帧。然后使用相同的插值模型分两步进行时间插值以实现高帧率。这些操作都基于共享相同图像骨干网络的潜在扩散模型(LDMs)。最后,将潜在视频解码到像素空间,并可选地应用视频上采样器扩散模型。
- Video LDM的LDM组件:
- 利用压缩潜在空间进行视频建模。
- 优势:可使用大批次大小,能联合编码更多视频帧,利于长期视频建模,不会有过高的内存需求,因为所有视频预测和插值都在潜在空间中进行。
- 上采样器:
- 训练方式:高效的图像块方式。
- 效果:节省计算资源,降低内存消耗,因低分辨率条件无需捕捉长期时间相关性,无需预测和插值框架。
相关工作的讨论见附录C。
4. 实验
这部分请参考原文,此处只做简要介绍
数据集
- 用于驾驶场景视频生成和文本到视频任务,使用RDS数据集(683,060个8秒、512×1024、30fps视频,含昼夜标签、拥挤度注释、部分含边界框)、WebVid-10M数据集(1070万视频-字幕对,52,000视频小时,调整为320×512),以及附录I.2的山地自行车数据集。
评估指标
- 采用逐帧FID、FVD,因FVD不可靠,作者还进行了人工评估;文本到视频实验还评估CLIPSIM和IS(见附录G)。
模型架构和采样
- 图像LDM基于[65],使用卷积编码器/解码器,潜在空间DM架构基于[10]的U-Net;像素空间上采样器DM使用相同图像DM骨干网络,实验用DDIM采样,更多信息在附录。
更多架构、训练、评估、采样和数据集的详细信息见附录。
4.1 高分辨率驾驶视频合成
- 训练过程:
- 在RDS数据上训练Video LDM管道及4倍像素空间上采样器,基于昼夜和拥挤度条件,训练时随机丢弃标签实现不同合成方式。
- 先训练图像骨干LDM的空间层,再训练时间层。
- 性能对比:
- 以LVG为基线,Video LDM在128×256未使用上采样器时性能更优,添加条件可降FVD。
- 人工评估显示Video LDM样本在真实感方面更优,条件模型样本好于无条件样本。
- 上采样器比较:
- 视频微调上采样器与独立逐帧图像上采样对比,时间对齐对上采样器性能重要,独立上采样致FVD下降但FID稳定。
- 实验结果展示:
- 展示结合Video LDM和上采样器的条件样本,能生成长达数分钟、时间连贯的高分辨率驾驶视频,已验证5分钟结果在附录和补充视频。
4.1.1 消融研究
重点提炼:
- 在RDS数据集上对比较小的Video LDM与各种基线,结果在表1(右)及附录G。
- 不同模型设置的性能比较:
- 对预训练像素空间图像扩散模型应用时间微调策略,性能不如原Video LDM。
- 端到端LDM在RDS视频上从头学参(无图像预训练),FID和FVD大幅下降。
- 引入3D卷积时间层可输入上下文帧,性能优于仅用注意力机制的时间模型(同空间层和可训练参数)。
- 应用上下文引导可降FVD但增FID。
此外还做了如下操作:
- 分析对包含LDM框架[65]的压缩模型解码器进行视频微调的效果。
- 在RDS数据集上应用微调策略,对比重建视频/图像帧的FVD/FID分数。
- 结果表明视频微调使FVD/FID分数有数量级的提升(表3)。
4.1.2 驾驶场景模拟
省略,参考原文
4.2 使用稳定扩散的文本到视频
Video LDM方法:
- 无需先训练自己的图像LDM骨干网络,可利用现有图像LDM转变成视频生成器。
- 将稳定扩散转变为文本到视频生成器,使用WebVid-10M数据集训练时间对齐版本,对稳定扩散的空间层微调,插入时间对齐层和添加文本条件。
- 对稳定扩散潜在上采样器进行视频微调,支持4倍上采样,生成1280×2048分辨率视频,生成的视频含113帧,可渲染为不同帧率和时长的片段。
- 能生成超越训练数据的具有表现力和艺术性的视频,结合了图像模型风格与视频的运动和时间一致性。
评估结果:
- 在UCF-101和MSR-VTT评估零样本文本到视频生成,除Make-A-Video外优势显著,在UCF-101的IS指标上超Make-A-Video,Make-A-Video使用更多数据。
4.2.1 使用DreamBooth的个性化文本到视频
时间层转移测试:
- 探究Video LDM中图像LDM骨干网络上训练的时间层能否转移到其他模型检查点。
- 使用DreamBooth对稳定扩散的空间骨干网络(SD 1.4)在少量特定对象图像上微调,绑定身份与罕见文本标记。
- 将经过视频调整的稳定扩散中的时间层插入原始稳定扩散模型的新DreamBooth版本,用绑定标记生成视频,可生成个性化连贯视频并能捕捉训练图像身份,验证了时间层可推广到其他图像LDM,首次实现个性化文本到视频生成,更多结果在附录I。
5. 结论
下面是本文的核心:
- 模型提出:Video Latent Diffusion Models(Video LDMs)用于高效高分辨率视频生成。
- 关键设计:基于预训练图像扩散模型,并通过时间对齐层进行时间视频微调转化为视频生成器。
- 计算效率保证:利用LDMs,可与超分辨率DM结合并进行时间对齐。
- 应用成果:
- 合成长达数分钟高分辨率且时间连贯的驾驶场景视频。
- 将稳定扩散文本到图像LDM转变为文本到视频LDM并实现个性化文本到视频生成。
- 时间层特性:学习到的时间层可转移到不同模型检查点,利用这一点进行个性化文本到视频生成。
相关文章:
AIGC视频生成模型:慕尼黑大学、NVIDIA等的Video LDMs模型
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍慕尼黑大学携手 NVIDIA 等共同推出视频生成模型 Video LDMs。NVIDIA 在 AI 领域的卓越成就家喻户晓,而慕尼黑大学同样不容小觑,…...
Hadoop 与 Spark:大数据处理的比较
💖 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长…...
VB6.0 显示越南语字符
近期接到客户咨询,说是VB6.0写软件界面上显示越南语乱码,需要看看怎样解决。 我在自己电脑上也试了下,确实显示越南语结果是乱码。编辑器里乱码,运行起来界面上也是乱码。 经过一天的折腾,算是解决了问题,…...
微信小程序中实现进入页面时数字跳动效果(自定义animate-numbers组件)
微信小程序中实现进入页面时数字跳动效果 1. 组件定义,新建animate-numbers组件1.1 index.js1.2 wxml1.3 wxss 2. 使用组件 1. 组件定义,新建animate-numbers组件 1.1 index.js // components/animate-numbers/index.js Component({properties: {number: {type: Number,value…...
网络仿真工具Core环境搭建
目录 安装依赖包 源码下载 Core安装 FAQ 下载源码TLS出错误 问题 解决方案 找不到dbus-launch 问题 解决方案 安装依赖包 调用以下命令安装依赖包 apt-get install -y ca-certificates git sudo wget tzdata libpcap-dev libpcre3-dev \ libprotobuf-dev libxml2-de…...
JavaScript 的 Promise 对象和 Promise.all 方法的使用
JavaScript 中的 Promise 对象 什么是 Promise? Promise 是一种用于处理异步操作的对象。它代表一个尚未完成但预计将来会完成的操作及其结果。 主要特点: 状态: Pending(进行中): 初始状态,既未成功,也未失败。Fu…...
农产品价格报告爬虫使用说明
农产品价格报告爬虫使用说明 # ************************************************************************** # * * # * 农产品价格报告爬虫 …...
Java 大视界 -- Java 大数据中的隐私增强技术全景解析(64)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
实战Linux Swap扩展分区
文章目录 定义命令格式案例注释 定义 Swap分区是Linux系统中的一种虚拟内存实现方式,它是磁盘上预留的专用区域。当系统的物理内存不足时,会将部分不活跃的数据从物理内存移动到Swap分区,从而释放更多可用内存空间。 命令格式 关闭Swap分区…...
doris:Parquet导入数据
本文介绍如何在 Doris 中导入 Parquet 格式的数据文件。 支持的导入方式 以下导入方式支持 Parquet 格式的数据导入: Stream LoadBroker LoadINSERT INTO FROM S3 TVFINSERT INTO FROM HDFS TVF 使用示例 本节展示了不同导入方式下的 Parquet 格式使用方法…...
Synology 群辉NAS安装(6)安装mssql
Synology 群辉NAS安装(6)安装mssql 写在前面mssql 2019:成功安装说明,这个最终成功了 mssql 2022没有成功1. pull image2.启动mssql docker container 远程连接 写在前面 mssq是一个重要节点。 这是因为我对mysql没有一丝好感。虽然接触了许…...
使用.NET 8构建高效的时间日期帮助类
使用.NET 8构建高效的时间日期帮助类 在现代Web应用程序中,处理日期和时间是一个常见的需求。无论是记录日志、生成报告还是进行数据分析,正确处理日期和时间对于确保数据的准确性和一致性至关重要。本文将详细介绍如何使用ASP.NET Core和C#构建一个高效…...
第26篇 基于ARM A9处理器用C语言实现中断<二>
Q:基于ARM A9处理器怎样编写C语言工程,使用按键中断将数字显示在七段数码管上呢? A:基本原理:主程序需要首先调用子程序set_A9_IRQ_stack()初始化IRQ模式的ARM A9堆栈指针;然后主程序调用子程序config_GIC…...
dm8在Linux环境安装精简步骤说明(2024年12月更新版dm8)
dm8在Linux环境安装详细步骤 - - 2025年1月之后dm8 环境介绍1 修改操作系统资源限制2 操作系统创建用户3 操作系统配置4 数据库安装5 初始化数据库6 实例参数优化7 登录数据库配置归档与备份8 配置审计9 创建用户10 屏蔽关键字与数据库兼容模式11 jdbc连接串配置12 更多达梦数据…...
Nginx部署的前端项目刷新404问题
1,查看问题 我部署的81端口是监听tlias项目的,我直接访问端口页面可以出现内容。 我在浏览器舒服端口之后回车,会重定向页面。但是我在重定向之后的页面刷新浏览器就会出现404的问题。 下面是刷新浏览器后的效果 2,在nginx.cnf …...
H2 Database安装部署
H2 Database H2 Database官网 H2 中文文档 安装部署H2 java版本要高于java 11 ## 下载java21 wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz[rootlocalhost ~]# tar xf jdk-21_linux-x64_bin.tar.gz -C /usr/local/ [rootlocalhost ~]# vi…...
Day40:列表的排序
在 Python 中,排序是处理列表数据时常用的一种操作。排序可以帮助我们按照一定的规则(如升序或降序)对列表中的元素进行排列。Python 提供了内置的排序方法 sort() 和 sorted() 来实现这一功能。 1. 使用 sort() 方法排序 1.1 sort() 方法简…...
TypeScript进阶(三):断言
文章目录 一、前言二、类型断言2.1 利用 as 实现断言2.2 利用 <> 实现断言2.3 应用示例2.3.1 如果 A,B 如果是类并且有继承关系2.3.2 如果 A,B 如果是类,但没有继承关系2.3.3 如果 A 是类,B 是接口,并且 A 类实现…...
塔罗牌(基础):大阿卡那牌
塔罗牌(基础) 大啊卡那牌魔术师女祭司皇后皇帝教皇恋人战车力量隐士命运之轮正义吊人死神节制恶魔高塔星星月亮太阳审判世界 大啊卡那牌 魔术师 作为一个起点,象征:意识行动和创造力。 一个【显化】的概念,即是想法变…...
微服务(一)
文章目录 项目地址一、微服务1.1 分析User的Domian Verb和Nouns 二、运行docker和k8s2.1 Docker1. 编写dockerfile2. 创建docker image3. 运行docker使用指定端口4. 查看当前运行的镜像5. 停止当前所有运行的docker6. 删除不用的docker images7. 将本地的image上传到hub里 2.2 …...
JAVA(SpringBoot)集成Kafka实现消息发送和接收。
SpringBoot集成Kafka实现消息发送和接收。 一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者 君子之学贵一,一则明,明则有功。 一、Kafka 简介 Kafka 是由 Apache 软件基金会开发的一个开源流处理平台,最初由 Link…...
Oracle之开窗函数使用
开窗函数是数据开发面试的必知必会,必须认真对待,上难度: 开窗函数语法格式如下,一共五部分: ①函数(a)over(②<partition by b> ③<order by c> ④<windowing_clause> ⑤开窗范围)1、函数…...
mysql_store_result的概念和使用案例
mysql_store_result() 是 MySQL C API 中的一个函数,用于检索一个完整的结果集到一个客户端。当执行一个查询(通常是 SELECT 查询)并希望处理所有返回的数据时,可以使用此函数。 概念 mysql_store_result() 函数的原型如下&…...
【大数据】数据治理浅析
在数字化时代,数据作为企业的核心资产,其管理和利用显得尤为关键。数据治理,作为数据管理的重要组成部分,旨在确保数据的准确性、一致性、安全性和可用性。本文将从数据治理的基本概念、应用场景、必要性、需求分析等方面出发&…...
第 25 场 蓝桥月赛
4.喜糖摆放【算法赛】 - 蓝桥云课 问题描述 在过年时,蓝桥村的孩子们充满活力,他们化身为捣蛋鬼,挨家挨户寻讨喜糖。他们一共收到了N颗糖,每颗糖的甜度各不相同,第i颗糖的甜度为Ai。 然而,如何分配这些喜…...
LigerUI在MVC模式下的响应原则
LigerUI是基于jQuery的UI框架,故他也是遵守jQuery的开发模式,但是也具有其特色的侦听函数,那么当LigerUI作为View层的时候,他所发送后端的必然是表单的数据,在此我们以俩个div为例: {Layout "~/View…...
Vue2下篇
插槽: 基本插槽: 普通插槽:父组件向子组件传递静态内容。基本插槽只能有一个slot标签,因为这个是默认的位置,所以只能有一个 <!-- ParentComponent.vue --> <template> <ChildComponent> <p>…...
python 变量范围的定义与用法
文章目录 1. 局部变量(Local Scope)示例: 2. 嵌套函数变量(Enclosing Scope)示例:说明: 3. 全局变量(Global Scope)示例:说明: 4. 内置变量&#…...
for...in 和 Object.keys().forEach的区别
for…in 和 Object.keys().forEach的区别 1、遍历范围: for…in 会遍历 自身及原型链上的可枚举属性,需用 hasOwnProperty 过滤。 Object.keys() 仅遍历 自身可枚举属性,更安全。 // 定义一个父对象,包含原型链上的属性 const…...
API接口设计模板
API 员工登录接口设计 基本信息 Path: /admin/staff/login **Method:**POST 接口描述: 请求参数 Query 参数名称是否必须示例备注username是admin用户名password是mima密码 返回数据 名称类型是否必须默认值备注其他信息codeinteger必须dat…...
新电脑安装系统找不到硬盘原因和解决方法来了
有不少网友反馈新电脑采用官方u盘方式装win10或win100出现找不到硬盘是怎么回事?后来研究半天发现是bios中开启了rst(vmd)模式。如果关闭rst模式肯定是可以安装的,但这会影响硬盘性能,有没有办法解决开启rst模式的情况安装win10或win11呢&…...
”彩色的验证码,使用pytesseract识别出来的验证码内容一直是空“的解决办法
问题:彩色的验证码,使用pytesseract识别出来的验证码内容一直是空字符串 原因:pytesseract只识别黑色部分的内容 解决办法:先把彩色图片精确转换成黑白图片。再将黑白图片进行反相,将验证码部分的内容变成黑色&#…...
网站上的图片无法使用右键“图片另存为”
某些网站想要下载图片,无法使用右键“图片另存为”,网站截获了鼠标右键的快捷键,没法弹出右键菜单。 可以打开“开发者工具”,使用“Elements”面板找到这个元素,在元素上右键,选择“Open in new tab” 结…...
Linux:生产者消费者模型
一、普通生产者消费者模型 1.1 什么是生产者消费者模型 现实生活中,我们也会有像生物世界的生产者和消费者的概念,但是我们的消费者在大多数情况下并不和生产者直接联系,就比如说食物,不能说我今天去找供货商要十个面包ÿ…...
网络安全 | F5-Attack Signatures详解
关注:CodingTechWork 关于攻击签名 攻击签名是用于识别 Web 应用程序及其组件上攻击或攻击类型的规则或模式。安全策略将攻击签名中的模式与请求和响应的内容进行比较,以查找潜在的攻击。有些签名旨在保护特定的操作系统、Web 服务器、数据库、框架或应…...
自然元素有哪些选择?
在设计浪漫风格的壁纸时,自然元素是营造温馨、梦幻氛围的关键。以下是一些常见的自然元素选择,以及它们在壁纸设计中建议: 一、花朵 玫瑰: 特点:玫瑰是浪漫的象征,尤其是红色和粉色玫瑰,能够传…...
基于微信阅读网站小程序的设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
linux挂载新硬盘,查看新硬盘,格式化分区,创建挂载点,挂载逻辑卷,整盘方式挂载,LVM方式挂载,查看linux 磁盘卷组的剩余空间,ext4与xfs区别
摘要 挂载新硬盘,本文作者整理了几乎所有相关的知识点 作者采用的是本文第二种挂载方式(LVM),只用了下面6条命令搞定 # 说明: # /dev/mapper/appvg-mylv1 逻辑卷完整名称 # # /dev/mapper目录是Linux系统中用…...
Web3.0时代的挑战与机遇:以开源2+1链动模式AI智能名片S2B2C商城小程序为例的深度探讨
摘要:Web3.0作为互联网的下一代形态,承载着去中心化、开放性和安全性的重要愿景。然而,其高门槛、用户体验差等问题阻碍了Web3.0的主流化进程。本文旨在深入探讨Web3.0面临的挑战,并提出利用开源21链动模式、AI智能名片及S2B2C商城…...
AIGC专栏18——EasyAnimateV5.1版本详解 应用Qwen2 VL作为文本编码器,支持轨迹控制与相机镜头控制
AIGC专栏18——EasyAnimateV5.1版本详解 应用Qwen2 VL作为文本编码器,支持轨迹控制与相机镜头控制 学习前言相关地址汇总源码下载地址HF测试链接MS测试链接 测试效果Image to VideoText to Video轨迹控制镜头控制 EasyAnimate详解技术储备Qwen2 VLStable Diffusion …...
测试的基本原则
1.SDLC 才是王道:软件开发生命周期(SDLC)对于软件开发而言,是如同基石般的关键流程,每一位开发人员都应该对其了如指掌。从最初的需求定义,到最终软件上线后的维护,SDLC 的各个阶段环…...
如何建设一个企业级的数据湖
建设一个企业级的数据湖是一项复杂且系统化的工程,需要从需求分析、技术选型、架构设计到实施运维等多个方面进行综合规划和实施。以下是基于我搜索到的资料,详细阐述如何建设企业级数据湖的步骤和关键要点: 一、需求分析与规划 明确业务需…...
Ubuntu介绍、与centos的区别、基于VMware安装Ubuntu Server 22.04、配置远程连接、安装jdk+Tomcat
目录 ?编辑 一、Ubuntu22.04介绍 二、Ubuntu与Centos的区别 三、基于VMware安装Ubuntu Server 22.04 下载 VMware安装 1.创建新的虚拟机 2.选择类型配置 3.虚拟机硬件兼容性 4.安装客户机操作系统 5.选择客户机操作系统 6.命名虚拟机 7.处理器配置 8.虚拟机内存…...
springfox-swagger-ui 3.0.0 配置
在3.0中,访问地址URL变了。 http://地址:端口/项目名/swagger-ui/ SpringBoot maven项目引入 <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>3.0.0</version> </…...
【PyTorch][chapter 29][李宏毅深度学习]Fine-tuning LLM
参考: https://www.youtube.com/watch?veC6Hd1hFvos 目录: 什么是 Fine-tune 为什么需要Fine-tuning 如何进行Fine-tune Fine-tuning- Supervised Fine-tuning 流程 Fine-tuning参数训练的常用方案 LORA 简介 示例代码 一 什么是 Fine-tune …...
Spring无法解决的循环依赖
在Spring框架中,循环依赖是指两个或多个Bean相互依赖,形成一个闭环。例如,Bean A依赖于Bean B,而Bean B又依赖于Bean A。虽然Spring通过三级缓存(一级缓存、二级缓存、三级缓存)机制解决了大多数情况下的循…...
C++的类Class
文章目录 一、C的struct和C的类的区别二、关于OOP三、举例:一个商品类CGoods四、构造函数和析构函数1、定义一个顺序栈2、用构造和析构代替s.init(5);和s.release();3、在不同内存区域构造对象4、深拷贝和浅拷贝5、构造函数和深拷贝的简单应用6、构造函数的初始化列…...
如何应对离别之:短暂离别
《若道离别》(一):如何应对离别之短暂离别 大多数人还是不能很全心愉快地面对离别,哪怕只是短暂,还是从有到无的失落感,有人一天就适应,有人需要很久 不求离别无动于衷,但求使用部分…...
Harmony Next 跨平台开发入门
ArkUI-X 官方介绍 官方文档:https://gitee.com/arkui-x/docs/tree/master/zh-cn ArkUI跨平台框架(ArkUI-X)进一步将ArkUI开发框架扩展到了多个OS平台:目前支持OpenHarmony、Android、 iOS,后续会逐步增加更多平台支持。开发者基于一套主代码…...
笔试-二维数组2
应用 现有M(1<M<10)个端口组,每个端口组是长度为N(1<N<100),元素均为整数。如果这些端口组间存在2个及以上的元素相同,则认为端口组可以关联合并;若可以关联合并,请用二位数组表示输出结果。其中…...