视觉语言动作模型VLA的持续升级:从π0之参考基线Octo到OpenVLA、TinyVLA、DeeR-VLA、3D-VLA

第一部分 VLA模型π0之参考基线Octo

1.1 Octo的提出背景与其整体架构

1.1.1 Octo的提出背景与相关工作

许多研究使用从机器人收集的大量轨迹数据集来训练策略

  1. 从早期使用自主数据收集来扩展策略训练的工作[71,48,41,19-Robonet,27,30]
  2. 到最近探索将现代基于transformer的策略与大型演示数据集相结合的工作[10-Rt-1,40,98-ALOHA或ACT,28-Mobile aloha,83,86- Open-world object manipulation using pre-trained vision-language models]

这些工作主要集中在单一的embodiment上,而Octo则在跨多个体现组装的机器人数据集上训练策略,增加了训练数据集的有效规模,并允许对多种机器人设置进行微调

最近,论文集中于扩展机器人策略的泛化能力。多项研究利用多样的非机器人数据或预训练的视觉-语言基础模型来提升策略对新场景和任务的泛化能力[86,103,96,16,38,11,84,36,4,37,7,3,46,15,23]

  • 与Octo更密切相关的是最近的研究,这些研究在多个机器人具体化数据上训练机器人策略:
    GNM模型[81,80]在机器人导航设置中实现了泛化
    而RoboCat[9]和RT-X[67]控制多个单臂操作机器人
  • 虽然这些模型在策略学习上取得了令人印象深刻的成果,但一个关键问题是它们缺乏灵活性:通常要求用户坚持使用预训练期间的传感器输入和动作空间,并且不支持适应新的观测和动作空间。此外,最大的模型尚未公开

    Octo在多个方面与这些工作不同:它在更大且更多样化的机器人数据混合上进行训练,通过高效微调新机器人设置支持更广泛的下游应用,并且它是完全开源和可复现的

Octo 的设计灵感来源于机器人模仿学习和可扩展transformer训练的几项最新进展,包括

  1. 使用去噪扩散目标[34-DDPM]进行动作解码[17-Diffusion policy 详见此文《Diffusion Policy——斯坦福机器人UMI所用的扩散策略:从原理到其编码实现》,31-Scaling Up and Distilling Down: Language-Guided Robot Skill Acquisition,85-Nomad]
  2. 预测“动作块”,即未来动作序列[98-ALOHA或ACT,17-Diffusion policy,28-Mobile aloha]
  3. 以及受可扩展视觉transformer训练文献启发的模型布局和学习率计划[22-ViT,97]

训练通用机器人策略的一个关键要素是机器人训练数据

  1. 与可以从网络上抓取的视觉和语言数据不同,获取大规模的机器人数据具有挑战性,通常需要在硬件和人工劳动上进行大量投资。有多个大型机器人导航和自动驾驶数据集[29,95,13,87,80,43,89]
  2. 近年来,也有多个努力构建规模和多样性不断增加的机器人操作数据集,这些数据集要么通过脚本和自动策略收集[19,41,42,12,71,30],要么通过人工遥控收集[59,60,25,90,39,10,26,6,77,63,79]

Octo 在Open X-Embodiment 数据集[67]上进行了训练,这是最近汇集了上述许多机器人数据集的努力。Open-X 数据集包含约 150 万个机器人剧集,作者在其中为Octo训练整理出来了80万条数据「The Open-X dataset contains approximately 1.5M robot episodes, of which we curate 800k for Octo training

总之,他们开源了训练、微调和运行他们模型所需的所有资源「项目地址见:https://octo-models.github.io,其对应的论文为《Octo: An Open-Source Generalist Robot Policy》,发布于24年5月」:

  1. 预训练的Octo检查点用于Octo-Small(27M参数)和Octo-Base(93M参数)
  2. 微调脚本用于Octo模型,使用JAX
  3. 模型预训练管道用于在Open X-Embodiment数据集上进行Octo预训练,使用JAX
  4. 独立数据加载器用于Open X-Embodiment数据,兼容JAX和PyTorch

并在附录B中提供了一个简单的示例,用于加载和运行预训练的Octo模型

1.1.2 Octo的模型架构:涉及输入Tokenizers、Transformer骨干、action head

Octo的核心是一个基于Transformer的策略π「我很是怀疑,π0的取名很可能得到了这点的启发,^_^

它由三个关键部分组成:

  • 输入Tokenizers,用于转换的语言指令\ell、目标g、观察序列o_{1}, \ldots, o_{H}转化为token序列\left[\mathcal{T}_{l}, \mathcal{T}_{g}, \mathcal{T}_{o}\right]
  • 一个处理token并生成嵌入e_{l}, e_{g}, e_{o}=T\left(\mathcal{T}_{l}, \mathcal{T}_{g}, \mathcal{T}_{o}\right)的transformer骨干
  • 生成所需动作a的readout头R(e)

对于第一部分输入Tokenizers,作者使用特定模态的tokenizers将任务定义(例如,语言指令\ell和目标图像g)和观察o(例如,手腕和第三人称摄像机流)转换为一种通用的“tokenized”格式

  • 语言输入被Tokenized
    通过一个预训练的transformer生成一系列语言嵌入token——使用t5-base(111M)模型 [74]
  • 图像观测和目标
    通过一个浅卷积堆栈,然后分割成一系列扁平化的patches [22-ViT]。通过将可学习的位置嵌入添加到任务和观察token中,然后将它们按顺序排列\left[\mathcal{T}_{T}, \mathcal{T}_{o, 1}, \mathcal{T}_{o, 2}, \ldots\right]

对于后两个部分transformer骨干和读出头:一旦输入被转换为统一的token序列,它们就会被transformer处理(见下图图2,顶部)。这类似于先前的工作,这些工作在观测和动作序列上训练基于transformer的策略 [92, 73-Robot learning with sensorimotor pre-training]

  • Octo transformer的注意力模式是块状掩蔽的:观测token只能因果地关注来自相同或更早时间步\mathcal{T}_{o, 0: t}的token以及任务token\mathcal{T}_{T}

    对应于不存在的观测的token被完全屏蔽(例如,没有语言指令的数据集)。这种模块化设计使得能够在微调过程中添加和删除观测或任务(见下文)
  • 除了这些输入token块之外,作者还插入了学习的readout token\mathcal{T}_{R, t}

    readout tokens在\mathcal{T}_{R, t}中关注序列中之前的观测和任务token,但不被任何观测或任务token关注——因此,它们只能被动地读取和处理内部嵌入,而不影响它们
    Readout tokens的作用类似于BERT中的 [CLS]标记,作为到目前为止观测序列的紧凑向量嵌入

    一个实现扩散过程的轻量级“动作头”被应用于readout tokens的嵌入。这个动作头预测几个连续动作的“块”,类似于之前的工作[98-ALOHA或ACT, 17-Diffusion policy]
    A lightweight “action head” that implements the diffusion process is applied to the embeddings for the readout tokens. This action head predicts a “chunk" of several consecutive actions, similar to prior work [98, 17].

这种设计使得能够在下游微调期间灵活地向模型添加新的任务、和观察输入,或动作输出头。在下游添加新任务、观察或损失函数时,可以完全保留transformer的预训练权重,只需根据规范的变化添加新的位置嵌入、新的轻量级编码器或新头部的参数(见下图图2,底部)

这与之前的架构形成对比 [10-Rt-1, 81],在这些架构中,添加或移除图像输入或更改任务规范需要重新初始化或重新训练预训练模型的大型组件

这种灵活性对于使Octo成为真正的“通用”模型至关重要:毕竟无法涵盖所有可能的机器人传感器和在预训练期间的动作配置中,能够在微调期间调整Octo的输入和输出。先前的模型设计使用标准的transformer骨干或将视觉编码器与MLP输出头融合,锁定了模型所期望的输入类型和顺序。相比之下,切换Octo的观察或任务不需要重新初始化大部分模型

1.2 Octo的训练数据、训练目标、训练细节

1.2.1 训练数据

Octo在Open X-Embodiment数据集[67]中25个数据集的混合上训练Octo,这是一个多样化的机器人学习数据集集合。总之,Octo的训练混合包括来自多个机器人体现和场景的各种任务的演示数据

这些数据集不仅在机器人类型方面是异质的,而且在传感器(例如,包括或不包括腕部摄像头)和标签(例如,包括或不包括语言指令)方面也是异质的。详见下图图3

为了创建我们的训练混合物 D

  1. 首先通过去除所有不包含图像流的Open-X数据集以及那些不使用增量末端执行器控制的数据集来整理数据
  2. 还去除过于重复、图像分辨率低或由过于小众任务组成的数据集。对于剩余的数据集,根据任务和环境将它们大致分类为“更多样化”和“较少样化”数据集,然后在训练过程中将更多样化数据集的权重加倍
  3. 且还降低了一些包含许多重复情节的数据集的权重,以避免其主导混合数据
  4. 最后,对任何缺失的摄像机通道进行零填充,并在数据集之间对齐夹持器动作空间,使得夹持器命令+1表示“夹持器打开”,0表示“夹持器关闭”
    这点,对于RDT、π0也是一样的,毕竟涉及到不同种类的异构数据,所以需要做一定的对齐

1.2.2 训练目标

作者使用条件扩散解码头来预测连续的、多模态的动作分布 [类似34-DDPM, 17-Diffusion policy]「We use a conditional diffusion decoding head to predict continuous, multi-modal action distributions [34 , 17 ]

  1. 重要的是,每次动作预测仅执行一次transformer骨干的前向传递,之后的多步去噪过程完全在小型扩散头内进行,且作者发现这种策略参数化在零样本和微调评估中优于使用MSE动作头或离散动作分布训练的策略 [10-Rt-1]
    Importantly, only one forward pass of the transformer backbone is performedper action prediction, after which the multi-step denoising process is carried out entirely with in the small diffusion head. We found this policy parameterization to outperform policies trained with MSE action heads or discretized action distributions [ 10] in both zero-shot and finetuning evaluations.
  2. 为了生成一个动作,采样一个高斯噪声向量x^{K} \sim \mathcal{N}(0, I)并应用 K步去噪,使用一个学习到的去噪网络\epsilon_{\theta}\left(x^{k}, e, k\right),该去噪网络以先前去噪步骤的输出x_k、步骤索引k和transformer的action readout的输出嵌入e为条件「To generate an action, we sample a Gaussian noise vector xK ∼ N 0, I and apply K steps of denoising with a learned denoising network ϵθ (xk, e, k) that is conditioned on the output xk of the previous denoising step, the step index k, and the output embedding e of the transformer action readout」:
    x^{k-1}=\alpha\left(x^{k}-\gamma \epsilon_{\theta}\left(x^{k}, e, k\right)+\mathcal{N}\left(0, \sigma^{2} I\right)\right)

    其中,超参数\alpha, \gamma, 和 \sigma 对应于噪声计划:使用来自 [66-Improved DDPM]的标准余弦计划。且使用 [34-DDPM] 中首次提出的标准 DDPM 目标训练扩散头,其中向数据集动作添加高斯噪声,并训练去噪网络\epsilon_{\theta}\left(x^{k}, e, k\right)以重建原始动作

    有关扩散策略训练的详细解释,请参见 Chi 等人 [17],且在原论文的附录 D 中列出了所有超参数

作者在微调期间使用相同的扩散训练目标并更新完整模型,这一方法优于冻结预训练参数子集的方法。在所有微调实验中,采用相同的方法:给定一个包含大约100条轨迹的小型目标领域数据集,使用余弦衰减学习率衰减和线性预热进行50k步的微调

1.2.3 训练细节

作者训练了他们模型的两个变体:

  1. Octo-Small,其transformer骨干网的大小与ViT-S相似
  2. 和Octo-Base,其transformer骨干网的大小与ViT-B相似 [22-即ViT论文]

    且使用AdamW优化器 [51],采用反平方根衰减学习率计划 [97],权重衰减为0.1,梯度裁剪为1.0
    ViT-B在TPU v4-128 pod上以批量大小为 2048训练了300k步,耗时14小时。在具有24GB VRAM的单个NVIDIA A5000 GPU上对同一模型进行微调运行大约需要5小时,并且可以通过多GPU训练加速

另,使用2帧观察历史进行训练;在他们的初步实验中,他们发现超过第一个附加帧后收益显著减少。他们使用后见目标重标记「We use hindsight goal relabeling」,它从轨迹中的未来状态中均匀选择一个状态作为目标图像,类似于之前的工作 [54, 90, 81, 77, 63]

  • 且在训练期间应用常见的图像数据增强,并随机将语言指令或目标图像置零,以便Octo可以根据语言指令或目标图像进行条件训练
  • 对于没有语言注释的数据集,作者始终使用目标图像条件。这使他们的模型能够主要从自监督的视觉观察中学习控制,并减少语言注释的负担,类似于之前关于多上下文模仿学习的工作 [54,62,61,63]。有关超参数选择的更多详细信息,请参见附录D

1.3 一系列消融实验

1.3.1 Octo控制9个机器人,及其与RT-1-X、RT-2-X的对比

作者进行了一系列实验,提供了对Octo的实证分析,评估其作为通用机器人基础模型在多个方面的能力:

  1. Octo能否控制多个机器人体现,并开箱即用地解决语言和目标任务?
  2. Octo的权重是否可以作为数据高效微调到新任务和机器人的良好初始化,并且是否比从头开始训练和常用的预训练表示更好?
  3. 在构建通用机器人策略时,Octo的哪些设计决策最为重要?

评估设置:他们在4个机构的9个具有代表性的机器人学习设置中评估Octo的能力(见下图图4)

  • 且他们测试Octo在语言和目标图像任务中对不同机器人进行开箱即用(“零样本”)控制的能力,使用与预训练数据匹配的机器人设置,其中所有机器人都通过增量末端执行器控制动作进行控制,观察空间为RGB图像
  • 且还评估了Octo在数据高效微调到新环境和任务中的表现,包括新的观察(“Berkeley Insertion”中的力-扭矩输入)、新的动作空间(“Berkeley Pick-Up”中的关节位置控制)和新的机器人体现(“Berkeley Coke”和“Berkeley Bimanual”)
  • 每个微调设置使用 ∼100域内演示,并在NVIDIA A5000 GPU上微调 < 5小时,所有设置使用相同的超参数(见附录D)。评估任务还测试了Octo与多样化对象(例如,“WidowX BridgeV2”)交互的能力,解决长时间跨度任务

此外,他们将Octo控制多种机器人开箱即用的能力与最佳公开可用的通用机器人策略 RT-1-X [67]进行比较,使用发布的检查点

  • 与Octo类似,RT-1-X在Open X-Embodiment机器人数据集上进行了预训练,旨在零样本控制多种机器人,因此提供了一个自然的比较点
  • 他们还将Octo的零样本能力与 RT-2-X进行比较,这是一个在Open X-Embodiment数据集上微调的550亿参数视觉语言模型,用于生成机器人动作
    值得一提的是,RT-1-X和RT-2-X仅支持基于语言指令的条件,但Octo还支持基于目标图像的条件
    比如作者在WidowX任务中使用目标图像条件对我们的模型进行了评估,发现其成功率比使用语言条件评估时高25%。基本可以断定:因为目标图像提供了更多关于如何完成任务信息

RT-1-X和RT-2-X模型[67]在一个更受限制的子集上训练,共350K集(相比之下,Octo为800K集)。且他们进一步比较Octo作为策略初始化用于数据高效微调的性能与两种常见方法:

  1. 从头开始训练目标领域演示
  2. 使用预训练的视觉表示
    虽然许多先前的研究提出了其他用于模仿微调的预训练方案 [25, 24-Behavior retrieval: Few-shot imitation learning by querying unlabeled datasets, 26],但据我们所知,没有任何先前的方法提供了一个经过预训练的策略,并已被证明能够成功微调到新的观察和动作空间
    然而,像 VC-1 [56] 这样的预训练视觉表示已经以这种方式使用,因此将这些方法用作另一个比较点

对于微调,作者发现从头开始训练我们的大型 transformer 架构在小型数据集上很快就过拟合。
相反,我们使用许多先前工作采用的经典策略架构从头开始获得了更好的结果:一个带有 FiLM [70] 语言条件的 ResNet 视觉编码器,结合一个小型 transformer 动作解码器,并使用扩散目标进行训练,类似于 [10- RT-1, 98-ALOHA或ACT, 17-Diffusion policy, 55- Interactive language: Talking to robots in real time]

  1. 作者这个架构的实例化有 28M 个参数(类似于 RT-1 [10])。我们采用这个作为我们的从头开始的基线(“ResNet+Transformer Scratch”)
  2. 且还比较了按照以下程序预训练的视觉表示,比如一个 ViT-B 视觉编码器被初始化为VC-1 权重 [57],这是一种在 4,000 小时的自我中心视频和ImageNet 上预训练的最先进的视觉表示,并与一个 MLP动作解码器结合。完整模型通过使用 MSE 损失(“VC-1”)来训练预测专家动作

1.3.2 通用机器人策略训练的设计决策

作者还分析了不同设计决策对Octo策略性能的影响。具体来说,他们关注以下几个方面:模型架构
、训练数据、训练目标、模型规模

除非另有说明,否则他们在Octo-Small模型上进行所有消融实验,这是由于他们的计算预算限制

  • 模型架构:先前基于transformer的策略设计通常使用大型ResNet风格[32]编码器对输入图像进行编码,并将生成的图像特征与相对较小的transformer[10, 67, 81, 17, 98, 61, 83]融合

    相反,我们选择了一种“transformer优先”的架构,该架构使用非常浅的CNN补丁编码器,并将大部分参数和FLOPS集中在transformer主干中,类似于经典的视觉transformer架构[22-即ViT]

    在下表表II中,作者展示了这种可扩展的架构在全Open X-Embodiment数据混合训练时显著提高了性能「该表表明,当使用ViT架构、扩散动作头和广泛的训练数据混合时—— using the ViT architecture, diffusion action head, and wide training data mixture,作者实现了最佳性能。所有评估均在WidowX设置上进行。成功率是在两个语言条件任务和两个目标条件任务中,经过40次试验平均得出的

    重要的是,他们发现基于ResNet的架构在小数据集上训练时表现优于ViTs,例如,在“从头开始”比较中,这强调了大型transformer策略在多样化数据集上的可扩展训练中具有独特的适应性

// 待更

第二部分 OpenVLA

// 待更

第三部分 TinyVLA

// 待更

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

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

相关文章

C与指针。

目录 1_指针理解 1.1变量的值 1.2变量的地址 1.3指针 1.4取变量的地址 2_分析指针 2.1分析指针变量的要素 2.2根据需求定义指针变量 3_指针的使用 3.1指针对变量的读操作 3.2指针对变量的写操作 4_指针占用空间的大小与位移 4.1指针占用空间的大小 4.2指针的位移…

单片机学习笔记 15. 串口通信(理论)

更多单片机学习笔记&#xff1a;单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…

树莓派5+文心一言 -> 智能音箱

一、简介 效果&#xff1a;运行起来后&#xff0c;可以连续对话 硬件&#xff1a;树莓派5、麦克风、音箱&#xff0c;成本500-1000 软件&#xff1a;snowboy作为唤醒词、百度语音作为语音识别、brain作为指令匹配、百度文心一言作为对话模块、微软的edge-tts语音合成... 二…

SAP SD学习笔记17 - 投诉处理3 - Credit/Debit Memo依赖,Credit/Debit Memo

上一章讲了 请求书&#xff08;发票&#xff09;的取消。 SAP SD学习笔记16 - 请求书的取消 - VF11-CSDN博客 再往上几章&#xff0c;讲了下图里面的返品传票&#xff1a; SAP SD学习笔记14 - 投诉处理1 - 返品处理&#xff08;退货处理&#xff09;的流程以及系统实操&#…

Linux服务器使用JupyterLab

一、JupyterLab的配置 1. conda配置 自行搜索conda安装与配置。 2. 环境创建 &#xff08;1&#xff09;创建环境 conda create -n jupyter python3.10&#xff08;2&#xff09;激活环境 conda activate jupyter&#xff08;3&#xff09;安装jupyter包 pip install -i…

Flutter:页面滚动

1、单一页面&#xff0c;没有列表没分页的&#xff0c;推荐使用&#xff1a;SingleChildScrollView() return Scaffold(backgroundColor: Color(0xffF6F6F6),body: SingleChildScrollView(child: _buildView()) );2、列表没分页&#xff0c;如购物车页&#xff0c;每个item之间…

使用GitZip for github插件下载git仓库中的单个文件

背景&#xff1a;git仓库不知道抽什么疯&#xff0c;下载不了单个文件&#xff0c;点击下载没有反应&#xff0c;遂找寻其他方法&#xff0c;在这里简单记录下。 使用GitZip for github插件下载仓库中的单个文件 1、首先在浏览器安装插件&#xff0c;并确保为打开状态。 2、然…

Unet改进57:在不同位置添加SFHF

本文内容:在不同位置添加CBAM注意力机制 论文简介 由于恶劣的大气条件或独特的降解机制,自然图像会遭受各种退化现象。这种多样性使得为各种恢复任务设计一个通用框架具有挑战性。现有的图像恢复方法没有探索不同退化现象之间的共性,而是侧重于在有限的恢复先验下对网络结构…

数据结构(初阶7)---七大排序法(堆排序,快速排序,归并排序,希尔排序,冒泡排序,选择排序,插入排序)(详解)

排序 1.插入排序2.希尔排序3.冒泡排序4.选择排序(双头排序优化版)5.堆排序6.快速排序1). 双指针法2).前后指针法3).非递归法 7.归并排序1).递归版本(递归的回退就是归并)2).非递归版本(迭代版本) 计算机执行的最多的操作之一就有排序&#xff0c;排序是一项极其重要的技能 接下…

DataWhale—PumpkinBook(TASK07支持向量机)

课程开源地址及相关视频链接&#xff1a;&#xff08;当然这里也希望大家支持一下正版西瓜书和南瓜书图书&#xff0c;支持文睿、秦州等等致力于开源生态建设的大佬✿✿ヽ(▽)ノ✿&#xff09; Datawhale-学用 AI,从此开始 【吃瓜教程】《机器学习公式详解》&#xff08;南瓜…

【Python数据分析五十个小案例】使用自然语言处理(NLP)技术分析 Twitter 情感

博客主页&#xff1a;小馒头学python 本文专栏: Python爬虫五十个小案例 专栏简介&#xff1a;分享五十个Python爬虫小案例 项目简介 什么是情感分析 情感分析&#xff08;Sentiment Analysis&#xff09;是文本分析的一部分&#xff0c;旨在识别文本中传递的情感信息&…

【数据结构与算法】排序算法(上)——插入排序与选择排序

文章目录 一、常见的排序算法二、插入排序2.1、直接插入排序2.2、希尔排序( 缩小增量排序 ) 三、选择排序3.1、直接选择排序3.2、堆排序3.2.1、堆排序的代码实现 一、常见的排序算法 常见排序算法中有四大排序算法&#xff0c;第一是插入排序&#xff0c;二是选择排序&#xff…

Educator头歌:离散数学 - 图论

第1关&#xff1a;图的概念 任务描述 本关任务&#xff1a;学习图的基本概念&#xff0c;完成相关练习。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;图的概念。 图的概念 1.一个图G是一个有序三元组G<V,R,ϕ>&#xff0c;其中V是非空顶点集合&am…

oracle RAC各版本集群总结和常用命令汇总

oracle RAC学习 RAC介绍 RAC&#xff1a;高可用集群&#xff0c;负载均衡集群&#xff0c;高性能计算集群 RAC是⼀种⾼可⽤&#xff0c;⾼性能&#xff0c;负载均衡的share-everything的集群 8i:内存融合雏形 内存融合雏形&#xff08;Oracle Parallel Server&#xff09;…

数据资产管理是什么?为什么重要?核心组成部分(分类分级、登记追踪、质量管理、安全合规)、实施方法、未来趋势、战略意义

文章目录 一、引言&#xff1a;数据的新时代二、什么是数据资产管理&#xff1f;2.1 定义2.2 核心功能 三、为什么数据资产管理至关重要&#xff1f;3.1 面对的数据管理挑战 四、数据资产管理的核心组成部分4.1 数据分类与分级4.2 数据资产登记与追踪4.3 数据质量管理4.4 数据安…

C++高阶算法[汇总]

&#xff08;一&#xff09;高精度算法概述 高精度算法是指能够处理超出常规数据类型表示范围的数值的算法。在 C 中&#xff0c;标准数据类型通常有固定的位数和精度限制&#xff0c;而高精度算法可以解决大数运算、金融计算和科学计算等领域的问题。 &#xff08;二&#x…

springboot365高校疫情防控web系统(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;高校疫情防控的设计与实现 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为…

Electron实现打开子窗口加载vue路由指定的组件页面白屏

白屏有两种情况&#xff1a; Vue项目使用的history路由的话就会显示空白&#xff0c;加载不出来路由&#xff0c;也不能跳转路由 这种情况看我上一篇文章Electron vue3 打包之后不能跳转路由-CSDN博客 Electron中已经能正常加载页面跳转路由&#xff0c;但是创建子窗口加载子页…

智能探针技术:实现可视、可知、可诊的主动网络运维策略

网络维护的重要性 网络运维是确保网络系统稳定、高效、安全运行的关键活动。在当今这个高度依赖信息技术的时代&#xff0c;网络运维的重要性不仅体现在技术层面&#xff0c;更关乎到企业运营的方方面面。网络运维具有保障网络的稳定性、提升网络运维性能、降低企业运营成本等…

泷羽sec-shell脚本(全) 学习笔记

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…