SpectralGPT: Spectral Foundation Model 论文翻译1

news2024/12/26 0:39:10

遥感领域的通用大模型 2023.11.13在CVPR发表

原文地址:[2311.07113] SpectralGPT: Spectral Foundation Model (arxiv.org)

摘要

​ 基础模型最近引起了人们的极大关注,因为它有可能以一种自我监督的方式彻底改变视觉表征学习领域。虽然大多数基础模型都是为了有效地处理各种视觉任务的RGB图像而定制的,但在光谱数据方面的研究存在明显的差距,光谱数据为场景理解提供了有价值的信息,特别是在遥感(RS)应用中。为了填补这一空白,我们首次创建了一个通用的RS基础模型,名为SpectralGPT,该模型专门用于使用新型3D generative pretrained transformer(GPT)处理光谱RS图像。与现有基础模型相比,SpectralGPT

  1. 以渐进式训练方式适应不同尺寸、分辨率、时间序列和区域的输入图像,充分利用广泛的遥感大数据;
  2. 利用3D token生成空间光谱耦合;
  3. 通过多目标重建捕获光谱序列模式;
  4. 在100万张光谱RS图像上进行训练,生成超过6亿个参数的模型。

我们的评估突出了预训练的SpectralGPT模型的显著性能改进,这意味着巨大的潜力

引言

​ 光谱成像能够捕获大量的光谱信息,从而实现对物体和场景的高度精确的分析和识别,这超出了单独使用RGB数据的可能性。这使得多/高光谱(MS/HS)遥感(RS)数据成为首选工具和广泛的地球观测(EO)应用的关键组成部分,包括土地利用/土地覆盖测绘、生态系统监测、天气预报、能源开发、生物多样性保护和地质勘探。遥感卫星任务(如Landsat-8/9、Sentinel-2、高分-1/2/6等)的光谱数据的可用性和可及性迅速扩大,进一步为EO相关领域的新发现和进步提供了机会。然而,这种增长也产生了两个具有挑战性的困难,需要迅速注意和有效解决。

  • 从海量光谱数据中提取和挖掘信息的能力有限。现有的以专家为中心和数据驱动的模型已经达到了极限,不足以有效地从如此大量的光谱RS数据中学习视觉表示。为了将光谱遥感大数据的智能处理和分析能力提高到与其体量相匹配的水平,迫切需要创建新一代模型。
  • 在少数标签和无标签的情况下对地球观测(EO)任务有限的预测和解释能力。与光谱遥感数据的可用性相比,在像素级和图像级都缺乏相应的标签。标记数据的缺乏阻碍了深度学习和人工智能模型在实际EO任务中的全面监督应用。需要采取紧急行动,创建包含谱知识的RS基础模型。

image-20231124123302270

​ 在自我监督学习技术以及基于transformer的方法的迁移能力进步的推动下,基于基础模型的预训练技术的飞速发展。值得注意的是,这种激增在自然语言处理和计算机视觉领域尤为明显。Pretraining agent tasks 通常分为对比学习和生成学习。顾名思义,前者旨在教会模型区分相似和不相似的示例,而后者侧重于训练模型生成新数据或从部分观测中恢复完整数据。它们的区别如图1所示。对比学习的两个代表性框架是动量对比(MoCo)[14]和简单对比学习(SimCLR)[15]。MoCo引入动量更新来改进对比学习过程,而SimCLR利用数据增强来增强用于对比学习的图像对的多样性和复杂性。自从MoCo和SimCLR框架最初提出建议以来,已经开发了许多变体。这些变体旨在解决原始框架的特定挑战或限制,或进一步提高其性能。例如,SimCLR的一些变体加入了新的数据增强类型或改进了训练目标,而MoCo的一些变体探索了不同的动量更新策略或使用额外的损失来改进对比学习。随着**视觉变形(vision transformer, ViT)**的兴起,基于掩膜图像建模(mask image modeling, MIM)的生成学习在视觉预训练任务方面取得了重大进展。来自图像转换器(BEiT)的双向编码器表示,如[23]所示,是构建在ViT之上的MIM架构的一个突出例子。MIM允许输入所有图像patches,这为适应各种网络体系结构提供了灵活性。然而,与MIM相关的高计算成本在一定程度上限制了它在某些应用中的实际应用。他等人[24]提出了掩码自编码器(MAE)作为MIM的一种特殊替代方案。在MAE中,使用未遮挡的补丁或像素来重建那些被遮挡的补丁或像素。这种方法计算效率更高,也增强了预训练模型的推理能力,从而使其更适用于各种应用。

​ 然而,这些先进的模型在RS中的探索相对不足。针对RS任务设计,Wang等人[25]训练了包含1亿参数transformer的模型,开发了一种新的旋转变大小窗口注意机制,用于对下游任务的模型进行微调。不同于仅依赖少数可见图像patches来推断整个图像的mae方法,Sun等人[26]通过在其RS预训练模型中实施MIM策略,考虑了所有图像patches,无论是掩码的还是未掩码的。尽管计算成本增加,推理效率降低,但MIM允许灵活地使用各种深度架构作为网络骨干,如ViT和Swin transformer[27]。这两项初步研究的成功表明,预训练模型在红外光谱中的应用潜力巨大。成像光谱学的快速发展巩固了光谱遥感在红外光谱中的重要性。这种突出源于它有效利用丰富的光谱信息的独特能力。然而,现有的遥感基础模型由于对多波段数据的建模能力有限,在应用于光谱数据时遇到了挑战。光谱数据与现有基础模型之间的具体差距可以总结如下:

  1. (对比现有的RS基础模型):它们通常难以捕获三维张量数据中固有的空间光谱表示。这些模型中的大多数主要设计用于处理类似RGB图像的数据,这限制了它们完全捕获和表征光谱信息的能力。因此,它们处理此类数据类型的适用性仍然受到限制。
  2. (对比视频数据基础模型):计算机视觉中已经有针对视频数据设计的基础模型[28],[29],但视频数据与光谱数据之间存在显著差异。主要区别在于视频中连续帧之间的内容变化以及所有帧之间经常存在的冗余。因此,针对视频数据预先训练的网络设计往往不太适合频谱数据。
  3. (对比光谱数据基础模型):事实上,最近关于光谱数据基础模型的研究相对较少。只有一篇会议论文,即SatMAE[30],深入研究了预训练transformer的利用,例如MAE,用于光谱卫星图像。SatMAE的核心设计方法包括对相邻的光谱带进行分组,类似于RGB波段。然而,这种做法无意中破坏了光谱的连续性,导致三维空间-光谱耦合特征和光谱序列数据的不理想捕获。此外,有关预训练样本数量和有效训练策略的限制进一步阻碍了这方面的性能提高。

​ 为了填补这些空白,我们设计了SpectralGPT,这是一种为光谱数据精心定制的开创性RS基础模型。SpectralGPT具有开创性的元素,例如3D掩蔽策略,用于从空间-光谱混合令牌中学习视觉表示的编码器,以及用于保留光谱序列特征的多目标重建解码器。这些创新显著增强了SpectralGPT从光谱数据中学习内在知识表示的能力,为各种RS下游应用的场景理解提供了有价值的见解。图2展示了SpectralGPT预训练的视觉概述及其在不同下游任务中的通用应用,强调了其深远的贡献。

  • 光谱数据定制基础模型:SpectralGPT是第一个专门为光谱遥感数据设计的基础模型。SpectralGPT在MAE框架中考虑了光谱数据的独特特征,即空间光谱耦合和光谱序列性,具有简单而有效的3D GPT网络。
  • 大规模训练数据:SpectralGPT是在来自Sentinel-2卫星的广泛数据集上进行训练的,该数据集拥有超过100万张光谱图像。这项工作在三个不同的模型迭代(base、Large和huge)的创建中达到高潮,分别包含大约1亿个、3亿个和6亿个参数。
  • 预训练的灵活性:SpectralGPT采用渐进式训练策略,使其能够处理不同大小、分辨率、时间序列和地理区域的输入图像。这种创新的设计使模型的编码器暴露在各种各样的信息中,最终增强了其有效表示广泛特征的能力。
  • 先进的3D掩模和重建:SpectralGPT利用3D张量形状的空间光谱掩模,对光谱RS数据的掩模率至少为90%。此外,它采用开创性的多目标重建策略,全面捕获局部空间光谱特征和光谱序列信息。这些创新通过推理极大地提高了模型的学习能力。
  • 在下游任务中的卓越性能:SpectralGPT的影响扩展到下游RS模型,在各种任务中,它优于现有的最先进的(SOTA)竞争对手,包括单/多标签场景分类、语义分割和变化检测。
  • 新的基准数据集:我们策划了一个新的基准数据集,名为SegMunich,它专注于德国慕尼黑市内的城市地区及其邻近社区。该数据集是为了满足语义分割任务的需求而设计的,有13个类,便于下游分析。

SpectralGPT 介绍

A.简要回顾MAE

​ MAE是一种简单的自动编码方法[31],可以重建原始信号。像所有的自编码器一样,MAE包括一个编码器,它将观察到的信号映射到一个电位表示,以及一个解码器,从电位表示重建原始信号。然而,与经典的自编码器相比,MAE采用非对称设计,使编码器只能对部分和观察到的信号(没有掩码令牌)进行操作。此外,MAE采用轻量级解码器从潜在表示和掩码令牌重构完整信号。具体而言,MAE的实施过程可分为以下几个步骤:

  1. 给定H × W × C的输入图像,采用ViT中的策略将其划分为规则的、不重叠的patch,大小为p × p × C; 记为 x = { x 1 , x 2 , . . . , x H p × W p } x=\{x_1,x_2,...,x_{\frac{H}{p}\times \frac{W}{p}}\} x={x1,x2,...,xpH×pW}
  2. 接下来,对这些patch执行掩膜操作,以识别可见(或未掩膜)和掩膜的patch。即 $ x_{vis} = {x_i |i \in vis}$。只有可见的patch被发送到待学习的编码器中。
  3. 编码器 f e n f_{en} fen使用ViT实现,其中每个可见patch首先由共享矩阵 E s E_s Es线性投影,结合位置嵌入 E p o s E_{pos} Epos,然后通过一系列transformer块进行处理。因此,第i个patch的编码器输出可以表示为 z i = f e n ( E s x i + E p o s ) z_i= f_{en}(E_sx_i + E_{pos}) zi=fenEsxi+Epos
  4. MAE解码器的输入,用 g d e g_{de} gde表示,是一组完整的tokens,包括编码的可见patch和掩码tokens(例如, z m z_m zm)。编码特征(来自编码器的潜在表示)和掩码tokens用作输入,并与轻量级ViT解码器的位置嵌入相结合。解码器的最后一层是一个线性投影(例如,W),它输出的几个通道等于一个patch中的像素数。然后对输出进行重塑以重建图像为 x ^ = g d e ( W ( [ z v i s , z m ] ) + p o s ) \hat{x} = g_{de}(W([z_{vis},z_m])+pos) x^=gde(W([zvis,zm])+pos),其中 z v i s z_{vis} zvis是可见补丁的编码表示。
  5. MAE中使用的损失函数是均方误差(mean squared error, MSE),对可见和被掩盖的patch进行计算(类似于BERT[32])

​ 值得注意的是,我们进行了归一化处理,即计算每个patch中像素值的均值和标准差,并对patch进行归一化处理,即 x n o r m = x i − u i σ i ∣ i ∈ v i s x_norm = {\frac{x_i-u_i}{\sigma_i}|i\in vis} xnorm=σixiuiivis。在这种情况下,编码器重建任务更改为重建归一化像素值。

B. SpectralGPT方法概述

​ 我们的SpectralGPT模型由三个关键组件组成:用于处理光谱数据的3D掩模用于学习光谱视觉表示的编码器用于多目标重建的解码器。使我们的方法与众不同的是一种渐进的训练方式,其中模型使用不同类型的光谱数据进行训练。该策略增强了所提出的SpectralGPT基础模型,赋予其更大的灵活性、鲁棒性和泛化能力。图2提供了具有各种下游任务的拟议SpectralGPT的说明性工作流程。

image-20231124125343064

C.光谱数据的3D掩膜

​ 受基于mae框架的视频类数据的时空不可知采样的启发[29],我们将多波段光谱图像建模为三维张量数据。为了实现这一点,我们实现了一个3D立方体掩蔽策略,可以有效地处理类张量光谱数据。我们的方法利用90%的掩蔽率以有效的方式捕获空间和光谱的视觉表示,从而从输入的光谱数据中提取更准确和多样化的知识。

​ 给定一个H×W×D给定三维立方体光谱图像,我们沿着空间和光谱维度将其划分为非重叠的3D张量token。每个token的大小为p × p × k,其中p和k分别是空间维度和光谱维度的token大小。如此,我们可以得到 H p × W p × D k \frac{H}{p}\times\frac{W}{p}\times\frac{D}{k} pH×pW×kD个token,记为记为 x = { x 1 , x 2 , . . . , x H p × W p × D k } x=\{x_1,x_2,...,x_{\frac{H}{p}\times\frac{W}{p}\times\frac{D}{k}}\} x={x1,x2,...,xpH×pW×kD},可见图像和掩膜图像表示为 x v i s x_{vis} xvis x m a s k x_{mask} xmask
[ x v i s , x m a s k ] = M ⋅ x , [x_{vis},x_{mask}] = M \cdot x, [xvis,xmask]=Mx,
​ 其中 M ∈ 0 , 1 H p × W p × D k M\in {0,1}^{\frac{H}{p}\times\frac{W}{p}\times\frac{D}{k}} M0,1pH×pW×kD是一个标记的二进制掩码,指示应该屏蔽哪些标记,即标记中的所有像素都设置为零。

D.可见标记的编码器

​ 与MAE中的编码器类似,所有可见标记$ x_{vis} = {x_i |i \in vis}$ 空间-光谱混合表示首先使用共享线性投影 E s E_s Es转换为特征嵌入。通过编码器 f θ f_θ fθ学习到的关于变量 θ θ θ的表示表示为 f θ ( E s x i + E p o s ) f_θ(E_sx_i+ E_{pos}) fθ(Esxi+Epos),其中 E p o s E_{pos} Epos表示位置编码。编码器 f θ f_θ fθ由多个堆叠自注意(SA) transfromer块组成。编码器中使用的SA模块可以构造如下。

  • 对输入嵌入 z i z_i zi使用可训练矩阵 W Q , W K , W V W_Q ,W_K,W_V WQ,WK,WV,线性变化为query Q i Q_i Qi、key K i K_i Ki、value V i V_i Vi

  • 查询和关键字嵌入之间的注意力分数 S i S_i Si以点积的形式计算并乘 1 d \frac{1}{\sqrt d} d 1 ,通过softmax。然后,结果分数被用来对值嵌入进行加权,这些值嵌入被求和以产生最终的输出嵌入。原SA的完整过程公式为
    Q i = w i W Q , K i = x i W K , V i = x i W V S i = s o f t m a x ( Q i K i T d ) , z i = A t t e n t i o n ( Q i , K i , V i ) = S i V i , Q_i =w_iW_Q,K_i = x_iW_K,V_i = x_iW_V\\ S_i = softmax(\frac{Q_iK^T_i}{\sqrt d}),\\ z_i = Attention(Q_i,K_i,V_i) = S_iV_i,\\ Qi=wiWQ,Ki=xiWK,Vi=xiWVSi=softmax(d QiKiT),zi=Attention(Qi,Ki,Vi)=SiVi,

  • 最后,输出特征z具有相同的维度a,可以被后续编码器进一步处理

E.具有多目标重构的轻量级解码器给定编码器输出特征

​ 我们同时训练一个轻量级解码器,该解码器具有相对于变量z的多目标重建策略,以从可见和掩码图像标记的潜在嵌入中恢复原始图像标记。数学上,重建的图像标记可以表示为 x ^ = g ( f θ ( M ⋅ x ) ) \hat x = g (f_θ(M\cdot x)) x^=g(fθ(Mx))。解码器通常比编码器更窄、更浅,通常由几个transformer块和一个线性重构层组成。提出的SpectralGPT以端到端方式训练编码器和解码器,以最大限度地减少重建图像token和原始图像token之间的重建损失。在我们的方法中,重构损失由两个部分组成:token到token,频谱到频谱。这种多目标重构使得学习表征能够有效地捕获空间-频谱耦合特征和频谱序列信息。使用像素空间中的MSE作为损失函数。

F.渐进式预训练

​ 所提出的SpectralGPT模型具有对不同输入图像尺寸具有高度适应性的优点,这对于处理具有不同尺寸、分辨率、时间变化率和地理覆盖范围的图像的大型数据集特别有用。这是通过将输入图像分成固定大小的3D tokens(例如,8 × 8 × 3),然后通过编码器-解码器管道独立处理来实现的。然后将产生的标记拼接在一起,形成最终的输出图像。这种方法确保了模型理论上可以处理任意维度的图像,而不需要对体系结构或超参数进行任何更改。有了这个特性,所提出的模型允许将不同大小的图像输入到编码器网络中,并且只要将3D tokens裁剪为固定大小,就可以使用不同的传感器、分辨率、时间序列和模态来输入图像。

​ 值得强调的是,将不同类型的输入图像逐步输入到网络中,不仅有助于在输入图像的类型和大小上实现更大的灵活性,而且还有助于提高模型从不同数据源中提取有价值知识的能力,从而增强模型的泛化。例如,可以先输入96 ×96像素的图像,然后逐步输入128 x 128像素的图像,或者从哨兵2号数据开始,然后过渡到陆地卫星8号或高分2号数据。更广泛地说,处理不同类型和大小的输入图像的能力可以产生更健壮和可泛化的特征,而不限于特定的输入图像类型或大小,从而提高模型的泛化和先前未见过的数据的性能。此外,这种输入图像大小和类型的灵活性在实际应用中特别有益,在实际应用中,输入图像可能来自不同的来源或具有不同的分辨率,从而允许模型更适应输入图像不可预测的现实场景。

G.预训练数据集

​ 我们的基础模型是在一个全面的数据集上训练的Sentinel-2卫星。该数据集包括12个光谱波段,并从两个主要来源获取:(1)fMoW- s2[30],一个基于世界功能地图(fMoW)[33]的全球多样化收集,标记为62个类别,(2)BigEarthNet[34],一个源自10多个欧洲国家的区域数据集。为了提供数据集的概述,图3显示了地球上有人居住地区的图像样本分布,总共有1,473,105张图像。

image-20231124142851814

​ 斯坦福大学的研究人员精心制作了一项研究数据集,利用fMoW数据集的地理坐标和时间戳。这个过程的目的是构造一个时间哨兵2号的一系列图像为了确保数据质量,排除了sentinel -2之前的fMoW图像。对于部分之前的fMoW图像的位置,进行选择性管理,包括排除这些特定于速度的图像,并每隔6个月引入补充捕获,以丰富时间序列。这种方法最终创建了fMoW Sentinel2数据集,表示为fMoW- s2。该数据集主要覆盖了fMoW位置,并保留了与原始fMoW数据集中的标签镜像。fMoW-S2数据集由Sentinel-2光谱图像(B1-12和B8A)组成,分为三个子集:712874张训练图像、84939张验证图像和84966张测试图像,共882779张。每个图像的平均尺寸约为45像素高和60像素宽。有关fMoW-S2数据集的更多详细信息,有兴趣的人士可参阅专门的网站,在这!。

​ 此外,该研究结合了BigEarthNet数据集,特别是BigEarthNet- s2变体,在这!,包括590,326个不同的、不重叠的Sentinel-2光谱图像标记。使用该方法对不同变体模型进行预训练,涉及使用712,874张fMoW-S2图像和354,196张bigearth - s2图像。值得注意的是,只有10%的带有标签的bigearth - s2图像(总计35420张)被用于下游任务的微调。

H.实现细节和实验设置

​ 根据既定惯例,我们承认Sentinel-2图像包含13个光谱波段。然而,为了在信道组成方面协调预训练和下游任务之间的数据集,我们选择在所有fMoW数据集图像中保留12个优势波段,不包括波段B10。为了保证数据的一致性,我们将光谱图像逐波段归一化,将其值缩放到0到1的标准化范围。随后,我们遵循既定的方法[30]进行预处理。这包括在原始大小的0.2倍到1.0倍范围内随机裁剪图像,将它们调整为96 × 96像素,并应用水平翻转。这些细致的步骤共同有助于我们的谱基础模型的鲁棒性和兼容性。我们采用普通的ViT-Base架构作为网络骨干。为了使模型适应光谱数据,我们使用了8×8×3像素的令牌大小,有效地划分了图像。例如,一个大小为96 × 96 × 12像素的图像被分割成12 × 12 × 4个标记。从先前的工作[29]中获得灵感,我们的方法结合了两个可学习的位置嵌入。其中一种嵌入是专门用于空间信息的,而另一种是专门用于捕获跨光谱通道的变化的。这种增强进一步提高了模型从光谱输入中提取有意义特征的能力。

​ 我们的预训练严格遵循先前研究中概述的方法[30]。利用8个NVIDIA GeForce RTX 4090 gpuAMD EPYC7Y83的计算能力。我们实现了AdamW优化器[35],其基本学习率为 1 0 − 4 10^{-4} 104 ,加上半周期余弦衰减学习率调整策略。为了保证鲁棒性,我们采用了90%的3D掩蔽率,便于有效的训练。该模型在fMoW-S2数据集上进行了跨越200个epoch的综合预训练。在此阶段之后,模型继续在BigEarthNetS2数据集上进行100 epoch的训练。虽然这个阶段需要将输入尺寸修改为128 × 128 × 12,但其他设置保持一致。为了区分不同的阶段,仅在fMoW数据集上预训练的模型表示为SpectralGPT,而在两个数据集上以渐进的方式预训练的模型表示为SpectralGPT+。这种细致的策略有效地提高了模型在不同数据集上的适应性和性能。

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

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

相关文章

河南省第一届职业技能大赛网络安全项目试题

河南省第一届职业技能大赛 网络安全项目试题 一、竞赛时间 总计:420分钟 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A模块 A-1 登录安全加固 240分钟 200分 A-2 Web安全加固(Web) A-3 流量完整性保护与事件监控&a…

Openwrt 包管理系统介绍

Openwrt 包管理系统介绍 1. OpenWrt简介1.1 主要特点1.2 开源嵌入式操作系统1.2.1 嵌入式系统概念1.2.2 嵌入式系统分类1.2.3 嵌入式系统——安卓1.2.4 嵌入式系统的对比 2 OpenWrt包管理系统2.1 工作原理2.2 OPKG命令2.2.1 命令用法2.2.2 软件包的管理2.2.3 查询信息2.2.4 选项…

ubuntu 编译linux webrtc库

ubuntu 编译linux webrtc库 安装依赖 sudo apt-get update sudo apt-get install build-essential libssl-dev libasound2-dev libpulse-dev libjpeg-dev libxv-dev libgtk-3-dev libxtst-dev libwebp-dev sudo apt-get install libglib2.0-dev sudo apt-get update 报错时出…

设计测试用例的具体方法总结

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️白马沉河共歃誓,怒涛没城亦不悔 ☁️基于需求进行测试用例的设计 基…

【Linux】匿名管道与命名管道,进程池的简易实现

文章目录 前言一、匿名管道1.管道原理2.管道的四种情况3.管道的特点 二、命名管道1. 特点2.创建命名管道1.在命令行上2.在程序中 3.一个程序执行打开管道并不会真正打卡 三、进程池简易实现1.makefile2.Task.hpp3.ProcessPool.cpp 前言 一、匿名管道 #include <unistd.h&g…

死磕Nacos系列:Nacos在我的SpringCloud项目中做了什么?

Nacos服务注册 我们一个SpringCloud项目中集成了Nacos&#xff0c;当项目启动成功后&#xff0c;就可以在Nacos管理界面上看到我们项目的注册信息&#xff0c;还可以看到项目的健康状态等等信息&#xff1a; 那Nacos是什么时候进行了哪些操作的呢&#xff1f;今天我们来一探究…

数据挖掘 K近邻

什么时候用K近邻&#xff1f; 交叉验证的时候。最常见的交叉验证方法是K折交叉验证&#xff0c;其中数据集被均匀分成K个子集&#xff0c;称为折&#xff0c;然后执行K次训练和测试&#xff0c;每次选择不同的折作为测试集&#xff0c;其余的作为训练集。最后&#xff0c;将K次…

qt5.15.2及6.0以上版本安装

文章目录 下载在线安装器安装打开软件 下载在线安装器 因为从qt5.15开始不支持离线下载安装了&#xff0c;只能通过在线安装的方式进行安装。 下载在线安装下载器&#xff1a; 这个在线安装下载器网上也都是可以找到。 这里是其放到网盘上的下载地址&#xff1a; 链接&#x…

DBT踩坑第二弹

总结下dbt-spark踩到的坑&#xff0c;连接方式采用的是thrift连接 Kerberos认证。考虑到开源组件Kyuubi也是基于Hiveserver2&#xff0c;使用的thrift协议&#xff0c;所以采用Kyuubi执行SparkSQL。 官方文档给出的Thrift方式连接示例真的是简单&#xff0c;但是真是用起来真是…

01_MySQL介绍及安装

#任务背景 一、真实案例 某公司现在有几套不同版本的MySQL数据库&#xff0c;现在大部分的生产和测试环境都已经切换到5.7版本&#xff0c;由于历史原因&#xff0c;有一套测试环境版本为MySQL-5.5。现为了将测试环境版本统一&#xff0c;需要将原来测试环境数据库MySQL-5.5版…

Linux:创建进程 -- fork,到底是什么?

相信大家在初学进程时&#xff0c;对fork函数创建进程一定会有很多的困惑&#xff0c;比如&#xff1a; 1.fork做了什么事情?? 2.为什么fork函数会有两个返回值?3.为什么fork的两个返回值&#xff0c;会给父进程谅回子进程pid&#xff0c;给子进程返回0?4.fork之后:父子进…

哨兵1号回波数据(L0级)包格式解析与成像参数提取

坑爹的格式,具体有多坑往下看就知道了。matlab代码在文末。 先上首字母缩写: 再来回波数据包的格式图 1. 数据包格式 众所周知,解包的第一步是找帧头和帧长,找到第4~5字节,帧长码为“0x3761”,转十进制为14777,然而实际第一帧整帧的长度是14184。。。你要是加6我还能…

机器学习与因果推断的高级实践 | 数学建模

文章目录 因果推断因果推断的前世今生&#xff08;1&#xff09;潜在结果框架&#xff08;Potential Outcome Framework&#xff09;&#xff08;2&#xff09;结构因果模型&#xff08;Structual Causal Model&#xff0c;SCM&#xff09; 身处人工智能爆发式增长时代的机器学…

LeetCode OJ循环队列(C语言)

1.题目的初步分析 我们分析上述题目的时候会发现题目非常的长&#xff0c;不好整理思路&#xff0c;我这里可以大致的将本题的几个核心点说出来&#xff1a; 1.队列的思路 循环队列说来说去不还是队列嘛&#xff0c;那么队列的基本操作增删查改、以及队列的基本结构肯定都是不能…

京东家用电器商品电子说明书在哪里能找到怎么查看产品电子说明书?草柴返利APP如何查询领取京东优惠券拿京东购物返利?

京东商品电子说明书是一种便捷、高效的说明工具&#xff0c;为消费者了解和使用商品提供了重要帮助。京东商品电子说明书是一种以电子文档、图文、视频的形式提供的商品使用说明书。它通常由商家上传至京东平台&#xff0c;以供消费者在购买商品后下载查看。与传统的纸质说明书…

计算机编程零基础编程学什么语言,中文编程工具构件简介软件下载

计算机编程零基础编程学什么语言&#xff0c;中文编程工具构件简介软件下载 给大家分享一款中文编程工具&#xff0c;零基础轻松学编程&#xff0c;不需英语基础&#xff0c;编程工具可下载。 这款工具不但可以连接部分硬件&#xff0c;而且可以开发大型的软件&#xff0c;象如…

Leetcode—94.二叉树的中序遍历【简单】

2023每日刷题&#xff08;四十&#xff09; Leetcode—94.二叉树的中序遍历 C语言实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ /*** Note: The returned array mus…

Java实现—数据结构 1.初识集合框架

一、什么是集合框架 Java集合框架&#xff0c;又被称为容器&#xff0c;是定义在java.util包下的一组接口interfaces和其实现类classes 其主要表现为将多个元素element置于一个单元中&#xff0c; 集合框架是由若干个类组成的&#xff0c;每个类的背后就是一种数据结构&…

2023.11.25更新关于mac开发APP(flutter)的笔记与整理(实机开发一)

我自己写的笔记很杂&#xff0c;下面的笔记是我在chatgpt4的帮助下完成的&#xff0c;希望可以帮到正在踩坑mac开发APP&#xff08;flutter&#xff09;的小伙伴 目标&#xff1a;通过MAC电脑使用flutter框架开发一款适用于苹果手机的一个APP应用 本博客的阅读顺序是&#xf…

2022年06月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 点击绿旗,舞台上的角色会说出? A:2022年5月1日 B:1日5月2022年 C:2022年05月01日 D:05月01日2022年 答案:C 输出为:2022年05月01日。 第2题 观察规律,请问橙色方块应填…