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

AIGC视频生成模型:Meta的Emu Video模型

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍Meta的视频生成模型Emu Video,作为Meta发布的第二款视频生成模型,在视频生成领域发挥关键作用。

在这里插入图片描述

🌺优质专栏回顾🌺:

  1. 机器学习笔记
  2. 深度学习笔记
  3. 多模态论文笔记
  4. AIGC—图像

文章目录

    • 论文
    • 摘要
    • 引言
    • 相关工作
      • 文本到图像(T2I)扩散模型
      • 视频生成/预测
      • 文本到视频(T2V)生成
      • 分解生成
    • 方法
      • 预备知识
      • Emu Video
        • 生成步骤
        • 图像条件
        • 模型结构
        • 零终端信噪比 噪声调度
        • 插值模型
        • 实现简单性
        • 稳健的人类评估(JUICE)
      • 实现细节
        • 架构与初始化
        • 高效的多阶段多分辨率训练
        • 高质量微调
        • 插值模型
    • 实验
    • 伦理问题

论文

项目:https://emu-video.metademolab.com/assets/emu_video
论文:https://arxiv.org/pdf/2311.10709

摘要

本文提出Emu Video,这是一种文本到视频生成模型,将生成过程分解为两个步骤

  1. 先根据文本生成图像;
  2. 再基于文本生成的图像生成视频

该模型在性能上超越了RunwayML的Gen2和Pika Labs等商业解决方案。

引言

T2I模型大规模的图像文本对上训练,已经很成功了,可使用视频文本对进一步拓展文本到视频(T2V)生成,但视频生成质量和多样性方面仍落后于图像生成。原因在于:

  • 需要对更高维度的时空输出空间进行建模,且仅以文本提示作为条件;
  • 视频文本数据集通常比图像文本数据集小一个数量级

当前视频生成的主流范式是使用扩散模型一次性生成所有视频帧。而不是NLP中的自回归问题不同,自回归方法在视频生成中具有挑战性,因为从扩散模型生成单个帧就需要多次迭代

Emu Video通过显式的中间图像生成步骤,将文本到视频生成分解为两个子问题

  1. 根据输入文本提示生成图像;
  2. 基于图像和文本的强条件生成视频。

直观地说,给模型一个起始图像和文本会使视频生成更容易,因为模型只需要预测图像未来的演变

由于视频文本数据集远小于图像文本数据集,使用预训练的文本到图像(T2I)模型初始化T2V模型,并冻结其权重。在推理时,这种分解方法能显式生成图像,从而保留T2I模型的视觉多样性、风格和质量。

Emu Video证明了将文本到视频(T2V)生成过程分解为:先生成图像,再用生成的图像和文本生成视频。可以大幅提高生成质量。

到此,作者确定了他们的关键设计决策 —— 改变扩散噪声调度采用多阶段训练,从而能够绕过先前工作中对深度级联模型的需求高效生成 512 像素高分辨率的视频。该模型也可以根据用户提供的图像和文本提示生成视频。

相关工作

文本到图像(T2I)扩散模型

相比于先前的生成对抗网络(GAN)或自回归方法,扩散模型是文本到图像生成的前沿方法,通过加噪声和预测加入的噪声并去除来学习数据分布,生成输出。

扩散模型去噪可以在像素空间使用,也可以在低维潜在空间使用,本文采用潜在扩散模型进行视频生成

视频生成/预测

许多先前工作,如掩码预测、LSTMs、GANs 等通常在有限的领域中进行训练和评估。它们适用的场景较为狭窄,可能只在特定类型的视频数据、特定的任务要求或特定的应用场景中表现良好。

本文的研究中,目标是开放集的文本到视频(T2V)生成。开放集意味着处理的数据和任务场景更为广泛和多样,没有预先设定的严格限制,这与之前这些方法所适用的有限领域形成对比。

文本到视频(T2V)生成

多数先前工作通过利用T2I模型来解决T2V生成问题

  • 采用无训练方法,通过在T2I模型中注入运动信息进行零样本T2V生成
  • 通过微调T2I模型实现单样本T2V生成

这些方法生成的视频质量和多样性有限。

也有许多工作通过向T2I模型引入时间参数学习从文本条件到生成视频的直接映射,来改进T2V生成。如

  • Make-A-Video利用预训练的T2I模型和先验网络,在无配对视频文本数据的情况下训练T2V生成;
  • Imagen Video基于Imagen T2I模型构建级联扩散模型

为解决高维时空空间建模的挑战,部分工作在低维潜在空间训练T2V扩散模型,但这些方法学习从文本到高维视频空间的直接映射具有挑战性

本文则 采用分解方法来增强条件信号

分解生成

与Emu Video在分解方面最相似的工作是CogVideo和Make-A-Video:

  • CogVideo基于预训练的T2I模型,使用自回归Transformer进行T2V生成,其自回归性质在训练和推理阶段与Emu Video的显式图像条件有根本区别。
  • Make-A-Video 利用从共享图像文本空间中学习到的图像嵌入作为条件。

Emu Video直接利用第一帧作为条件,条件更强

此外,Make-A-Video从预训练的T2I模型初始化,但对所有参数进行微调,无法像Emu Video那样保留T2I模型的视觉质量和多样性。Stable Video Diffusion是一项与Emu Video同时期的工作,也引入了类似的分解方法进行T2V生成。

Make-A-Video是Meta于2022年发布的模型/论文中:MAKE-A-VIDEO: TEXT-TO-VIDEO GENERATION WITHOUT TEXT-VIDEO DATA
CogVideo是国产的视频生成模型,之前清华大学和智谱AI一起研发了CogView文本生成图像模型,CogVideo由清华大学发布的论文:CogVideo: Large-scale Pretraining for Text-to-Video Generation via Transformers

方法

文本到视频(T2V)生成的目标:构建一个模型,该模型以文本提示 P 作为输入,生成由 T 个 RGB 帧组成的视频 V

近期的一些模型仅使用文本作为条件,一次性直接生成 T 个视频帧。作者在本论文中认为:通过文本和图像共同提供更强的条件能够提升视频生成效果(验证参见 3.2 节 )。

预备知识

条件扩散模型是一类生成模型,通过迭代对高斯噪声去噪,根据条件输入c生成输出

在训练时:

  • 将时间步 t ∈ [ 0 , N ] t \in[0, N] t[0,N]相关的高斯噪声 ϵ t ∼ N ( 0 , 1 ) \epsilon_{t} \sim N(0, 1) ϵtN(0,1)添加到原始输入信号X上,得到有噪输入 X t = α t X + 1 − α t ϵ t X_{t}=\alpha_{t} X+\sqrt{1-\alpha_{t}} \epsilon_{t} Xt=αtX+1αt ϵt,其中 α t \alpha_{t} αt定义 “噪声调度”,N是扩散步骤总数。
  • 扩散模型通过预测噪声 ϵ t \epsilon_{t} ϵt x x x v t = α t ϵ t − 1 − α t X v_{t}=\alpha_{t} \epsilon_{t}-\sqrt{1-\alpha_{t}} X vt=αtϵt1αt X来对 x t x_{t} xt进行去噪。时间步t的信噪比(SNR)为 ( α t 1 − α t ) 2 (\frac{\alpha_{t}}{1-\alpha_{t}})^{2} (1αtαt)2,并随着 t → N t \to N tN而降低。

在推理时:

  • 纯噪声/高斯噪声 X N ∼ N ( 0 , 1 ) X_{N} \sim N(0, 1) XNN(0,1)开始去噪生成样本。

x t x_{t} xt去噪的三种预测方式:

  • 预测 ϵ t \epsilon_{t} ϵt常用):
    • ϵ t \epsilon_{t} ϵt是在时间步 t t t添加到原始输入信号 X X X的高斯噪声 ϵ t ∼ N ( 0 , 1 ) \epsilon_{t}\sim N(0, 1) ϵtN(0,1)。如果模型能够准确预测出这个噪声,那么就可以从含噪输入 X t = α t X + 1 − α t ϵ t X_{t}=\alpha_{t}X +\sqrt{1-\alpha_{t}}\epsilon_{t} Xt=αtX+1αt ϵt中减去预测的噪声,从而达到去噪的目的。
  • 预测 x x x
    • 这里的 x x x是指原始输入信号 X X X。模型直接预测原始信号本身,在得到预测的原始信号 X ^ \hat{X} X^后,就可以将含噪输入 X t X_{t} Xt中的噪声部分去除。在实际操作中,直接预测原始信号可能会比较复杂,因为模型需要学习从含噪信号中还原出原始信号的复杂映射关系。
  • 预测 v t v_{t} vt
    • v t = α t ϵ t − 1 − α t X v_{t}=\alpha_{t}\epsilon_{t}-\sqrt{1 - \alpha_{t}}X vt=αtϵt1αt X是一种组合了噪声 ϵ t \epsilon_{t} ϵt和原始信号 X X X的形式。当模型预测出 v t v_{t} vt v ^ t \hat{v}_{t} v^t时,可以通过一定的数学变换来去除噪声,恢复原始信号。这种方式综合考虑了噪声和原始信号之间的关系,也是一种有效的去噪策略。

Emu Video

在这里插入图片描述

图3描述了分解的文本 - 视频生成过程。

  • 首先根据文本 p p p生成图像 I I I
  • 然后使用更强的条件,即生成的图像和文本来生成视频 V V V

为了使我们的模型 F \mathcal{F} F以图像为条件,我们在时间维度上对图像进行零填充,并将其与一个二进制掩码连接起来,该掩码指示哪些帧是零填充的【类似Trandformer的填充遮蔽(Padding Masking)与未来遮蔽(Future Masking)】,以及含噪输入。

生成步骤

将文本到视频生成分解为两个步骤:

  • 首先,根据文本提示 p p p 生成第一帧(图像);
  • 然后,利用文本提示 p p p 和图像条件【下面会介绍图像条件怎么来的】生成T帧视频。

这两个步骤均使用潜在扩散模型 F \mathcal{F} F实现,使用预训练的文本到图像模型初始化 F \mathcal{F} F,确保其在初始化时能够生成图像

只需训练 F \mathcal{F} F解决第二步,即根据文本提示和起始帧/图像推出视频。使用视频文本对训练 F \mathcal{F} F,通过采样起始帧/图像 I I I,让模型根据文本提示 P P P和图像 I I I条件预测 T T T帧( T T T帧会被独立地添加噪声,以生成含噪输入 x t x_{t} xt,而扩散模型的训练目标就是对这个含噪输入进行去噪)。

首先通过逐帧应用图像自动编码器的编码器将视频 v v v转换到潜在空间 X ∈ R T × C × H × W X \in \mathbb{R}^{T×C×H×W} XRT×C×H×W,这会降低空间维度。潜在空间中的数据可以通过自动编码器的解码器转换回像素空间。

图像条件

通过将起始帧 I I I与噪声拼接(如上图的concatenate),为模型提供条件。将 I I I表示为单帧视频( T = 1 T=1 T=1),并对其进行零填充,得到 T × C × H × W T ×C ×H ×W T×C×H×W张量,同时使用形状为 T × 1 × H × W T ×1 ×H ×W T×1×H×W二进制掩码m,在第一时间位置设置为1表示起始帧位置,其他位置为0。将掩码m、起始帧I和有噪视频 x t x_{t} xt按通道连接作为模型输入。

Make-a-video等模型中基于语义嵌入设定条件的方法不同,Emu Video 的拼接的方式让模型利用起始帧 I 的全部信息。基于语义嵌入的方法会在条件设定时丢失部分图像信息,而 Emu Video 的设计避免了这一问题,为生成高质量视频提供了更多有效信息。

掩码 m 用于标记起始帧在序列中的位置帮助模型识别起始帧,对后续视频生成过程进行更精准的指导。

模型结构

使用预训练的T2I模型Emu初始化潜在扩散模型 F \mathcal{F} F,并添加新的可学习时间参数

  • 在每个空间卷积层之后添加一维时间卷积层;
  • 在每个空间注意力层之后添加一维时间注意力层 ;
  • 原始的空间卷积层和注意力层保持冻结状态。

在Runway的Gen-1中的时空潜在扩散中也使用了可学习时间参数:

  • 在每个残差块中的每个 2D 空间卷积之后引入一个1D 时间卷积。
  • 在每个空间 2D 空间注意力块后引入一个时间1D 时间注意力块。

预训练的 T2I 模型以文本作为条件与上一节的图像条件相结合后,模型 F \mathcal{F} F 同时以文本和图像作为条件。

Emu是Meta发布的一款T2I模型,论文为:Emu: Enhancing Image Generation Models Using Photogenic Needles in a Haystack

零终端信噪比 噪声调度

作者发现,先前工作(Emu和SD模型)中使用的扩散噪声调度存在训练 - 测试差异,这会阻碍高质量视频的生成

在训练过程中,该噪声调度会留下一些残留信号,也就是说,即使在扩散的终端时间步N,信噪比(SNR)仍不为零。当我们从不含真实数据信号的随机高斯噪声中采样时,这会导致扩散模型在测试时无法很好地泛化。由于高分辨率视频帧在空间和时间上存在冗余像素,其残留信号更为明显。

作者通过缩放噪声调度并将最终的 α N = 0 \alpha_N = 0 αN=0来解决这个问题,这使得在训练过程中的时间步为N时(扩散过程的最后一个阶段),信噪比也为零。我们发现这个设计决策对于高分辨率视频的生成至关重要

这个问题和缩放噪声调度方法并非本文首创,在之前的:Common diffusion noise schedules and sample steps are flawed也发现了这个问题。【来源于字节跳动】

插值模型

使用与 F \mathcal{F} F结构相同的插值模型 I I I,将低帧率的 T T T帧视频转换为高帧率的 T p T_{p} Tp帧视频。 输入的 T T T帧通过零交错生成 T p T_{p} Tp帧,并将指示 T T T帧存在的二进制掩码m连接到有噪输入。为提高效率,从 F \mathcal{F} F初始化 I I I,并仅针对插值任务训练 I I I的时间参数。

将低帧率的 T T T帧视频转换为高帧率的 T p T_p Tp帧,能提升视频流畅度与视觉效果,适应多样化应用场景,增强模型竞争力,为用户带来更好体验。

实现简单性

Emu Video在实现方面的简单且高效:

  1. 训练数据与模型结构简单
    • 标准数据集训练:Emu Video采用标准视频文本数据集进行训练,这意味着其训练数据来源广泛且具有通用性,不需要特殊定制的数据集,降低了数据准备的难度和成本。
    • 无需深度级联模型:在生成高分辨率视频时,Emu Video不需要像某些其他方法(如Imagen Video中使用7个模型的深度级联结构)那样复杂的模型架构,简化了模型构建和训练流程。
  2. 推理过程
    • 图像与视频生成:推理时,先运行去除时间层的模型F根据文本提示生成图像I再将I和文本提示作为输入,通过F直接生成高分辨率的T帧视频,这种推理方式简洁高效。
    • 帧率提升:借助插值模型I可提高视频帧率,进一步增强视频的视觉效果,且这一操作融入到了整体的推理流程中。
  3. 模型初始化与风格保留
    • 初始化策略:空间层从预训练的T2I模型初始化并保持冻结,这样可以利用T2I模型在大规模图像文本数据集上学习到的概念和风格多样性。
    • 风格保留优势:相比Imagen Video需要在图像和视频数据上联合微调以维持风格,Emu Video不需要额外的训练成本就能保留并运用这些风格来生成图像I。许多直接的T2V方法,如Make-a-video,虽然也从预训练T2I模型初始化并冻结空间层,但由于没有采用基于图像的分解方法,无法像Emu Video一样保留T2I模型的质量和多样性 。
稳健的人类评估(JUICE)

由于自动评估指标不能反映质量的提升,主要使用人类评估来衡量T2V生成性能,从视频生成质量(Quality,Q)和生成视频与文本提示的对齐或 “保真度”(Faithfulness,F)两个正交方面进行评估。提出JUICE评估方案,要求评估者在成对比较视频生成结果时说明选择理由,显著提高了标注者之间的一致性。评估者可选择像素清晰度、运动平滑度、可识别对象/场景、帧一致性和运动量等理由来评价视频质量;使用空间文本对齐和时间文本对齐来评价保真度。

实现细节

附录第 1 节提供完整的实现细节,详细内容可以参考附录第 1 节,这里只介绍关键细节。

架构与初始化

采用Emu中的文本到图像 U-Net 架构构建模型,并使用预训练模型初始化所有空间参数。

预训练模型使用一个 8 通道、64×64 的潜在向量,经自动编码器在空间上进行 8 倍下采样,生成 512px 的方形图像。
该模型同时使用一个冻结的 T5-XL 和一个冻结的 CLIP 文本编码器从文本提示中提取特征

高效的多阶段多分辨率训练

为降低计算复杂度,分两个阶段进行训练

  1. 先在低分辨率下,训练更简单的任务,即生成256px、8fps、1s的视频。
  2. 然后在期望的高分辨率下训练,对4fps、2s的视频进行15K次迭代训练。
    a. 使用同SD一样的噪声调度进行256px训练。
    b. 在512px训练中使用零终端信噪比噪声调度,扩散训练步数 N = 1000 N = 1000 N=1000
    c. 使用DDIM采样器进行采样,采样步数为250步。

SD中的噪声调度是:线性调度。
SD 系列文章参考:Stable Diffusion

高质量微调

通过在一小部分高运动和高质量视频上微调模型,可改善生成视频的运动效果。从训练集中自动识别出1600个具有高运动(根据H.264编码视频中存储的运动信号计算)的视频作为微调子集,并根据美学分数和视频文本与第一帧CLIP相似度进行筛选。

插值模型

插值模型I从视频模型F初始化,输入8帧,输出 T p = 37 T_{p} = 37 Tp=37帧,帧率为16fps。在训练时使用噪声增强,在推理时对F的样本进行噪声增强。

实验

参照论文原文

伦理问题

参照论文原文

相关文章:

AIGC视频生成模型:Meta的Emu Video模型

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍Meta的视频生成模型Emu Video,作为Meta发布的第二款视频生成模型,在视频生成领域发挥关键作用。 🌺优质专栏回顾&am…...

【PowerQuery专栏】PowerQuery提取XML数据

XML数据和Json 数据类型都是比较典型的层次数据类型,XML的数据格式非常的对称。所有的数据均是由标签对组成,图为典型的XML文件类型的数据。 在PowerQuery中进行XML数据类型解析采用的是Xml.Document 函数来进行文件内容的解析,Xml.Document 目前有三个可用参数。 参数1为数…...

流行的开源高性能数据同步工具 - Apache SeaTunnel 整体架构运行原理

概述 背景 数据集成在现代企业的数据治理和决策支持中扮演着至关重要的角色。随着数据源的多样化和数据量的迅速增长,企业需要具备强大的数据集成能力来高效地处理和分析数据。SeaTunnel通过其高度可扩展和灵活的架构,帮助企业快速实现多源数据的采集、…...

基于单片机的多功能蓝牙语音智能台灯(论文+源码)

1总体方案设计 通过需求分析,本设计多功能蓝牙语音智能台灯的系统框图如图2.1所示,系统架构包括主控制器STM32F103单片机、HC-06蓝牙通信模块、LU-ASR01语音识别模块、OLED液晶、LED灯、按键等器件,在使用时用户可以通过手机APP、语音识别、…...

leetcode刷题记录(七十二)——146. LRU 缓存

(一)问题描述 146. LRU 缓存 - 力扣(LeetCode)146. LRU 缓存 - 请你设计并实现一个满足 LRU (最近最少使用) 缓存 [https://baike.baidu.com/item/LRU] 约束的数据结构。实现 LRUCache 类: * LRUCache(int capacity)…...

力扣203题(3)

题目及之前的两种解法大家可以移步到这里: https://blog.csdn.net/suibiansa_/article/details/145242573?spm1001.2014.3001.5501 力扣203题—— 移除链表元素-CSDN博客 今天呢我们来写一下第三种解法: 虚拟创建一个头结点 ListNode firstnew Lis…...

网络安全:信息时代的守护者

随着互联网的快速发展,网络安全问题日益成为全球关注的焦点。无论是个人用户、企业组织还是政府部门,网络安全都已成为保障信息安全、保护隐私、确保社会秩序的基石。在这个数字化时代,如何应对复杂多变的网络安全威胁,成为了我们…...

【博客之星2024年度总评选】年度回望:我的博客之路与星光熠熠

【个人主页】Francek Chen 【人生格言】征途漫漫,惟有奋斗! 【热门专栏】大数据技术基础 | 数据仓库与数据挖掘 | Python机器学习 文章目录 前言一、个人成长与盘点(一)机缘与开端(二)收获与分享 二、年度创…...

接口自动化测试

APITEST: 接口自动化测试 目录结构介绍: conf目录:用来存放项目运行环境、执行环境相关的配置参数 testsuite目录:测试用例在此目录编写,pytest默认约定test开头的文件和方法为测试用例,不满足条件的不会被执行&#x…...

题海拾贝:力扣 138.随机链表的复制

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 1、题…...

第7章:Python TDD测试Franc对象乘法功能

写在前面 这本书是我们老板推荐过的&#xff0c;我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后&#xff0c;我突然思考&#xff0c;对于测试开发工程师来说&#xff0c;什么才更有价值呢&#xff1f;如何让 AI 工具更好地辅助自己写代码&#xff0c;或许…...

PyTorch基本功能与实现代码

PyTorch是一个开源的深度学习框架&#xff0c;提供了丰富的函数和工具&#xff0c;以下为其主要功能的归纳&#xff1a; 核心数据结构&#xff1a; • 张量&#xff08;Tensor&#xff09;&#xff1a;类似于Numpy的ndarray&#xff0c;是PyTorch中基本的数据结构&#xff0c…...

【2024 CSDN博客之星】技术洞察类:从DeepSeek-V3的成功,看MoE混合专家网络对深度学习算法领域的影响(MoE代码级实战)

目录 一、引言 1.1 本篇文章侧重点 1.2 技术洞察—MoE&#xff08;Mixture-of-Experts&#xff0c;混合专家网络&#xff09; 二、MoE&#xff08;Mixture-of-Experts&#xff0c;混合专家网络&#xff09; 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 2.3.1 业务场…...

Single-Model and Any-Modality for Video Object Tracking——2024——cvpr-阅读笔记

Single-Model and Any-Modality for Video Object Tracking 摘要相关工作创新处MethodShared embeddingModal promptingRGB Tracker based on TransformerOverall ExperiimentDatasetRGB-D samples are sourced from DepthTrackRGB-T samples are extracted from LasHeRRGB-E s…...

Java中的构造器

Java中的构造器详解 1. 什么是构造器 构造器&#xff08;Constructor&#xff09; 是一种特殊的方法&#xff0c;用于在创建对象时初始化对象的状态。构造器的名字必须与类名相同&#xff0c;且没有返回类型&#xff0c;连 void 也不能使用。 2. 构造器的特点 名称与类名相同…...

Restormer: Efficient Transformer for High-Resolution Image Restoration解读

论文地址&#xff1a;Restormer: Efficient Transformer for High-Resolution Image Restoration。 摘要 由于卷积神经网络&#xff08;CNN&#xff09;在从大规模数据中学习可推广的图像先验方面表现出色&#xff0c;这些模型已被广泛应用于图像复原及相关任务。近年来&…...

将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(3.纯python的实惠版)

前情&#xff1a; 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch&#xff08;1.标准版&#xff09;-CSDN博客 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch&#xff08;2.换掉付费的Event Hubs&#xff09;-CSDN博客 python脚本实现 厉害的…...

成就与远见:2024年技术与思维的升华

个人主页&#xff1a;chian-ocean 前言: 2025年1月17日&#xff0c;2024年博客之星年度评选——创作影响力评审的入围名单公布。我很荣幸能够跻身Top 300&#xff0c;虽然与顶尖博主仍有一定差距&#xff0c;但这也为我提供了更加明确的发展方向与指引。展望崭新的2025年&…...

BGP分解实验·9——路由聚合与条件性通告(1)

路由聚合是有效控制缩减BGP路由表的方法之一&#xff0c;路由聚合的前提和IGP一样&#xff0c;需要有路由目标存在BGP表中&#xff0c;与IGP不同的是&#xff0c;BGP路由聚合可以定义按需抑制路由的能力。 实验拓扑如下所示&#xff1a; 现在开始把从R1的R5的基础配置先准备好…...

栈和队列(C语言)

目录 数据结构之栈 定义 实现方式 基本功能实现 1&#xff09;定义&#xff0c;初始化栈 2&#xff09;入栈 3&#xff09;出栈 4&#xff09;获得栈顶元素 5)获得栈中有效元素个数 6&#xff09;检测栈是否为空 7&#xff09;销毁栈 数据结构之队列 定义 实现方…...

Jenkins-获取build用户信息

需求&#xff1a; 代码发布后&#xff0c;将发布结果发送至相关运维同学邮箱&#xff0c;需要获取发布人的信息。jenkins默认是没有相关内置变量的。 需要通过插件的方式进行解决&#xff1a; 插件&#xff1a; user build vars plugin 部署后&#xff0c;可使用的变量&…...

大数据学习(37)- Flink运行时架构

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…...

opengrok_windows_多工程环境搭建

目录 多工程的目录 工程代码下载和log配置 工程的索引 工程部署 工程测试 参考列表 多工程的目录 工程代码下载和log配置 工程代码下载 在每个工程的src目录下&#xff0c;下载工程代码&#xff0c;以下载pulseaudio的代码为例。 git clone gitgithub.com…...

Python网络自动化运维---SSH模块

目录 SSH建立过程 实验环境准备 一.SSH模块 1.1.Paramiko模块 1.1.1实验代码 1.1.2代码分段讲解 1.1.3代码运行过程 1.2Netmiko模块 Netmiko模块对比paramiko模块的改进&#xff1a; 1.2.1实验代码 1.2.2代码分段讲解 1.2.3代码运行过程 二.Paramiko模块和Ne…...

Failed to restart nginx.service Unit nginx.service not found

当你遇到 Failed to restart nginx.service: Unit nginx.service not found 错误时&#xff0c;这意味着系统无法找到 Nginx 的服务单元文件。这通常是因为 Nginx 没有通过 systemd 管理&#xff0c;或者 Nginx 没有正确安装。 解决方法 1. 检查 Nginx 是否正确安装 首先&am…...

学习记录之原型,原型链

构造函数创建对象 Person和普通函数没有区别&#xff0c;之所以是构造函数在于它是通过new关键字调用的&#xff0c;p就是通过构造函数Person创建的实列对象 function Person(age, name) {this.age age;this.name name;}let p new Person(18, 张三);prototype prototype n…...

【Redis】5种基础数据结构介绍及应用

考察频率难度60%⭐⭐ 这个方向的问题也是非常基础的&#xff0c;所以一般不会直接被当做一个单独的问题。常见的形式是结合你简历上的项目或者场景题来提问&#xff0c;即实际应用场景、是否可以优化、如何选择等。 由于场景题和实际项目差异较大&#xff0c;所以本文就只做基…...

基于GRU实现股价多变量时间序列预测(PyTorch版)

前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对抗网络、门控循环单元、长短期记…...

Java Web开发高级——Spring Boot与Docker容器化部署

随着云计算和微服务架构的快速发展&#xff0c;容器化已成为现代应用部署的重要手段。Docker作为最受欢迎的容器化技术之一&#xff0c;使得开发者能够将应用及其所有依赖打包到一个可移植的容器中&#xff0c;简化了开发、测试、部署和运维的流程。本篇文章将通过以下内容讲解…...

计算机网络——网络层

重点内容&#xff1a; (1) 虚拟互连网络的概念。 (2) IP 地址与物理地址的关系。 (3) 传统的分类的 IP 地址&#xff08;包括子网掩码&#xff09;和无分类域间路由选择 CIDR 。 (4) 路由选择协议的工作原理。 目录 重点内容&#xff1a; 一.网络层提供的两种服务 二…...

每打开一个chrome页面都会【自动打开F12开发者模式】,原因是 使用HBuilderX会影响谷歌浏览器的浏览模式

打开 HBuilderX&#xff0c;点击 运行 -> 运行到浏览器 -> 设置web服务器 -> 添加chrome浏览器安装路径 chrome谷歌浏览器插件 B站视频下载助手插件&#xff1a; 参考地址&#xff1a;Chrome插件 - B站下载助手&#xff08;轻松下载bilibili哔哩哔哩视频&#xff09…...

cesium绕点旋转

绕点旋转的原理可以理解为相机一直看向一个点&#xff0c;不断改变相机的位置 let position Cesium.Cartesian3.fromDegrees(longitude, latitude) let lookAtTimer setInterval(() > {let heading viewer.camera.heading;let pitch viewer.camera.pitch;if (heading &…...

JavaScript系列(36)--微服务架构详解

JavaScript微服务架构详解 &#x1f3d7;️ 今天&#xff0c;让我们深入了解JavaScript的微服务架构&#xff0c;这是构建大规模分布式系统的关键技术。 微服务基础概念 &#x1f31f; &#x1f4a1; 小知识&#xff1a;微服务架构是一种将应用程序构建为一组小型服务的方法&…...

神经网络基础 | 给定条件下推导对应的卷积层参数

神经网络基础 | 给定条件下推导对应的卷积层参数 按照 PyTorch 文档中 给定的设置&#xff1a; H o u t ⌊ H i n 2 padding [ 0 ] − dilation [ 0 ] ( kernel_size [ 0 ] − 1 ) − 1 stride [ 0 ] 1 ⌋ H_{out} \left\lfloor\frac{H_{in} 2 \times \text{padding}[0]…...

面向CTF的python_requests库的学习笔记

看师傅们写的各种脚本羡慕不已&#xff0c;自己却只会一点一点手搓&#xff0c;于是来做个笔记 requests库是干嘛的&#xff1f; 顾名思义&#xff0c;request就是请求&#xff0c;可以用来向服务器发送请求。它可以代替你在网站上发送请求报文&#xff0c;并接受回应报文。简…...

MIAOYUN信创云原生项目亮相西部“中试”生态对接活动

近日&#xff0c;以“构建‘中试’生态&#xff0c;赋能科技成果转化”为主题的“科创天府智汇蓉城”西部“中试”生态对接活动在成都高新区菁蓉汇隆重开幕。活动分为成果展览、“中试”生态主场以及成果路演洽谈对接三大板块。在成果展览环节&#xff0c;成都元来云志科技有限…...

Papers with Code:从代码索引到AI创新引擎

标题&#xff1a;Papers with Code&#xff1a;从代码索引到AI创新引擎 文章信息摘要&#xff1a; Papers with Code从解决机器学习论文代码复现的特定需求起步&#xff0c;通过建立全面的ML资源库和首个系统性leaderboard系统&#xff0c;快速积累了大量用户基础。被Meta收购…...

FastExcel 新一代的潮流 (EasyExcel)

目录 简介 FastExcel的特点 FastExcel使用方法详解 创建实体类和监听器 实现写入和读取功能 Excel转换为PDF 小结 FastExcel与EasyExcel的区别 结论 简介 FastExcel是由原EasyExcel作者在阿里巴巴宣布停止维护EasyExcel之后推出的升级版框架。它继承了EasyExcel的所有…...

Linux静态库与动态库的理解

Linux静态库与动态库的理解 一、静态库如何创建和使用静态库 二、动态库如何创建和使用动态库 三、静态库与动态库的关键区别四、总结 在 Linux 编程中&#xff0c;静态库和动态库是非常重要的概念 一、静态库 静态库是将多个目标文件&#xff08;.o 文件&#xff09;打包成一…...

mongoose 支持https踩坑纪实

简述 mongoose是C编写的嵌入式web服务&#xff0c;它能够支持https协议&#xff0c;可以简单的部署&#xff0c;但要做到完美部署&#xff0c;不是那么容易。 部署方法 本人使用的是最新的7.16版&#xff0c;以前版本似乎是要通过修改 头文件中的 MG_ENABLE_SSL 宏定义&…...

人工智能之数学基础:线性表达和线性组合

本文重点 线性表达和线性组合作为线性代数的核心概念,不仅深刻揭示了向量空间的基本性质,也为解决复杂问题提供了直观而有效的方法。 向量组 要想学习线性表达和线性组合,先来理解向量组。在线性代数中,向量组是指由若干个向量构成的集合。这些向量可以是二维的、三维的…...

uniapp——App 监听下载文件状态,打开文件(三)

5 实现下载文件并打开 这里演示&#xff0c;导出Excel 表格 文章目录 5 实现下载文件并打开DEMO监听下载进度效果图为什么 totalSize 一直为0&#xff1f; 相关Api&#xff1a; downloader DEMO 提示&#xff1a; 请求方式支持&#xff1a;GET、POST&#xff1b;POST 方式需要…...

Microsoft SQL Serve的下载与安装

1.访问Microsoft SQL Serve官网 SQL Server 下载 | Microsoft开始使用 Microsoft SQL Server 下载。选择最符合你的数据和工作负载需求的 SQL Server 试用版、版本、工具或连接器。[这里是图片001]https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.下载SQL…...

JMeter 测试Dubbo 接口

在使用 JMeter 进行 Dubbo 接口的测试时&#xff0c;JMeter 本身并没有直接支持 Dubbo 协议&#xff08;基于 RPC&#xff09;的插件。但是&#xff0c;我们可以通过以下几种方式来测试 Dubbo 接口&#xff1a; 1. 使用 JMeter 的 Java 请求&#xff08;JDBC 请求&#xff09;…...

Java 日志技术、Logback日志框架、日志级别

一. 日志 1. 日志&#xff1a;程序中的日志&#xff0c;通常就是一个文件&#xff0c;里面记录的是程序运行过程中的各种信息。 二. 日志技术 1. 日志技术&#xff1a;可以将系统执行的信息&#xff0c;方便的记录到指定的位置(控制台、文件中、数据库中) 2. 可以随时以开关的…...

美妆系列圣罗兰气垫粉色与黑色有什么区别?

在美妆界&#xff0c;圣罗兰的气垫一直备受青睐&#xff0c;而其中粉色款和黑色款更是有着各自的特点&#xff0c;存在不少区别呢。 从外观设计来看&#xff0c;粉色款整体给人一种温柔、甜美的感觉&#xff0c;外壳颜色清新&#xff0c;很容易击中少女心&#xff0c;携带在身边…...

HTML中的`<!DOCTYPE html>`是什么意思?

诸神缄默不语-个人CSDN博文目录 在学习HTML时&#xff0c;我们经常会看到HTML文档的开头出现<!DOCTYPE html>&#xff0c;它是HTML文件的第一行。很多初学者可能会疑惑&#xff0c;为什么需要这行代码&#xff1f;它到底有什么作用呢&#xff1f;在这篇文章中&#xff0…...

Sudo命令的配置及使用

概念 sudo 命令是 Linux 系统中一个非常重要的工具&#xff0c;它允许普通用户以超级用户&#xff08;通常是 root&#xff09;或其他用户的身份执行命令。从概念上来说&#xff0c;在普通用户在权限不够的时候&#xff0c;通过 sudo 命令 “摇人”&#xff0c;这个 “人” 就是…...

【HarmonyOS NEXT】鸿蒙三方应用跳转到系统浏览器

【HarmonyOS NEXT】鸿蒙三方应用跳转到系统浏览器 一、前言&#xff1a; 从三方应用跳转到系统浏览器是比较常见的功能。 拓展应用功能边界&#xff1a; 三方应用的功能通常相对聚焦和特定&#xff0c;无法涵盖用户可能需要的所有网络浏览需求。跳转到系统浏览器能让用户访问…...

电梯系统的UML文档06

系统传感器 系统值是用于控制系统的。在类图中系统传感器用一个箭头和系统控制对象连接。 类图中的系统传感器包括AtFloor、电梯呼叫器、关门、开门、门反转、楼层呼叫器和驱动&#xff08;AtFloor&#xff0c;CarCall&#xff0c;DoorClosed&#xff0c;DoorOpen&#xff0c;…...