MR-GDINO: Efficient Open-World Continual Object Detection—— 高效开放世界持续目标检测
这篇文章提出了一种名为MR-GDINO的开放世界持续目标检测方法,旨在解决开放世界检测器在持续学习过程中对已见类别和未见类别的灾难性遗忘问题。文章的主要内容和贡献如下:
-
问题定义:提出了开放世界持续目标检测任务,要求检测器在持续学习过程中同时保留已学习的旧类别、适应新类别,并保持对未见类别的检测能力。
-
基准构建:提出了一个名为OW-COD的基准,用于评估检测器在持续学习场景下对已见和未见类别的抗遗忘能力。该基准包含少样本训练数据和大规模开放世界评估数据。
-
方法提出:提出了MR-GDINO方法,通过记忆和检索机制来缓解灾难性遗忘。MR-GDINO使用一个可扩展的记忆池来缓存每个学习步骤中的新概念和视觉-语言交互参数,并在推理时自适应地检索最佳记忆以进行检测。
-
实验验证:通过实验验证了MR-GDINO的有效性。实验结果表明,MR-GDINO在少样本持续适应下显著优于现有的持续检测器,尤其是在已见和未见类别上的抗遗忘能力表现突出。
-
主要贡献:
-
提出了OW-COD基准,用于评估开放世界持续目标检测器的性能。
-
提出了MR-GDINO方法,通过记忆和检索机制实现了高效、可扩展的开放世界持续检测。
-
实验表明,MR-GDINO仅激活了0.1%的额外参数,便在已见和未见类别上实现了最先进的性能。
-
这篇文章通过提出新的任务、基准和方法,解决了开放世界持续目标检测中的灾难性遗忘问题,展示了MR-GDINO在少样本持续学习中的强大性能。这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:
官方项目地址如在这里,如下所示:
摘要
开放世界(OW)识别和检测模型展示了强大的零样本和少样本适应能力,激发了它们在持续学习方法中作为初始化的使用,以提高性能。尽管在已见类别上取得了令人鼓舞的结果,但由于灾难性遗忘,这些模型在未见类别上的能力大幅退化。为了解决这一挑战,我们提出了开放世界持续目标检测任务,要求检测器在持续学习场景中泛化到旧类别、新类别和未见类别。基于此任务,我们提出了一个具有挑战性但实用的OW-COD基准,以评估检测能力。目标是激励OW检测器在少样本适应下同时保留已学习的类别、适应新类别,并保持开放世界能力。为了减轻未见类别的遗忘,我们提出了MR-GDINO,通过记忆和检索机制在高度可扩展的记忆池中构建了一个强大、高效且可扩展的基线。实验结果表明,现有的持续检测器在已见和未见类别上都存在严重的遗忘问题。相比之下,MR-GDINO仅激活了0.1%的额外参数,便大幅减轻了遗忘,并在旧类别、新类别和未见类别上实现了最先进的性能。
图1. (a) 预训练的开放世界(OW)检测器[34]在未见数据上表现出强大的泛化能力,但无法从少样本标注中受益。(b) 基于OW检测器构建的持续检测器[8]在持续学习下对已见数据的mAP有所提升,但在未见对象上存在遗忘问题。(c) 我们提出的基于记忆和检索机制的OW持续检测器MR-GDINO在提升已见类别检测能力的同时,保留了对未见类别的开放世界检测能力。
1. 引言
开放世界(OW)识别和检测模型[2, 41, 50, 57, 62, 63]在有效识别和定位广义对象[17, 32, 52, 61]方面取得了显著进展。通过学习大量语义丰富的数据[3, 25, 26, 32, 44, 52, 60, 65],即使在没有未见类别的边界框监督的情况下,OW模型(例如目标检测网络)在开放世界场景中的零样本学习范式(例如图1(a)中的零样本Grounding DINO)下也能很好地泛化。得益于检测器的高度泛化特征表示,这些检测器可以通过多样本或少样本微调[7, 18, 21, 29, 34]适应新类别,从而在目标类别上表现更好。
通过顺序重复微调过程,可以将更新的OW检测器表述为持续学习范式[55, 66]。这种表述比传统的开放世界学习[30]或持续学习[66]更直观且更实用,原因有二。首先,预训练的开放世界(OW)检测器提供了支持零样本学习和快速适应的鲁棒初始表示。其次,OW检测器设计用于应对各种分布外场景,但仍然会因领域偏移[5, 39, 47]和先前未见类别[16, 23, 49, 51]而出现性能下降。具有快速适应能力的模型可以有效解决这一问题,增强在实际部署条件下的性能。因此,我们预期OW检测器将保留开放世界学习的优势,并在已知和新类别上展示出强大的泛化能力。
如图1(b)所示,先前关于OW检测器[34]在持续学习中的研究[8, 29, 30, 34]使特征表示严格适应目标类别领域[9, 18],并破坏了原始对齐良好的视觉-语言表示。尽管在已见类别上比零样本OW检测器表现更好,但传统的持续学习框架仍然存在对先前已见类别的灾难性遗忘问题。此外,在对已见类别进行持续适应后,所获得的检测器对未见类别的检测能力退化。这一限制制约了OW检测器在现实场景中的适用性。为了解决这一挑战,我们的研究追求两个目标:1)评估不同学习框架下OW检测器的灾难性遗忘问题,2)开发专门为OW检测器设计的持续学习策略,以实现对已见和未见类别的有前景的检测能力。
为此,我们提出了开放世界持续目标检测任务,要求优化的开放世界检测器在持续少样本适应下同时保留旧类别的知识、适应新类别,并保持对未见类别的检测能力。由于缺乏适当的评估工具,基于此任务,我们提出了一个具有挑战性但实用的基准OW-COD,专门设计用于评估OW检测器在持续学习框架下对旧类别、新类别和未见类别的抗灾难性遗忘能力。具体来说,OW-COD包括两组数据。前者是来自不同领域[29]的少样本训练数据及其对应的评估样本,这些数据按顺序用于通过持续学习范式优化OW检测器,并在类别增量设置下评估旧类别和新类别的检测性能。后者是大规模开放世界目标检测评估数据[17],用于评估未见类别的检测准确性,以对抗灾难性遗忘。结合对已见和未见类别的评估,符合我们任务的目标,并为开放世界检测场景下的持续学习框架提供了全面的基准。
基于OW-COD基准,我们构建了一个强大的基线方法来实现任务目标。基于先前的研究[13, 29],我们认为显式的视觉-语言交互模块是开放世界检测的关键组件。为了增强这些模块的抗灾难性遗忘能力,以实现更好的未见类别检测能力,我们为OW-COD基准提出了一个强大的基线MR-GDINO,通过记忆和检索机制实现高度可扩展的开放世界持续目标检测方法。具体来说,MR-GDINO采用了一个可扩展的记忆池,有效地缓存了来自持续学习步骤的新概念和视觉-语言交互的参数三元组。在推理过程中,MR-GDINO能够自适应地检索最佳参数三元组,以检测先前学习过的、新适应的或开放世界场景中的对象。记忆和检索机制确保了MR-GDINO的灵活性、可扩展性和性能,从而保留了对旧类别、新类别和开放世界未见类别的检测能力。
我们在提出的OW-COD上进行了广泛的实验,比较了不同的持续目标检测框架和MR-GDINO。如图1(c)所示,仅激活少量额外参数的MR-GDINO在少样本持续适应下大幅超越了GDINO在已见类别上的表现。此外,得益于强大的检索机制,MR-GDINO在未见类别和已见类别上同时实现了有前景的性能。
总之,我们的贡献如下:
-
我们提出了OW-COD,一个具有挑战性但实用的基准,用于评估OW检测器在少样本持续适应下对已见和未见类别的检测能力。
-
我们提出了MR-GDINO,一个通过记忆和检索机制在高度可扩展的记忆池中构建的强大、高效且可扩展的OW持续检测器。
-
通过仅激活0.1%的额外参数,MR-GDINO有效提高了在少样本适应下对持续已见类别的检测能力,同时确保了对开放世界检测能力的不遗忘。
2. 相关工作
2.1 开放世界目标检测
开放世界(OW)目标检测[2, 29, 40, 50, 63]旨在开发能够在现实场景中识别已见和未见类别的最佳检测器,通过大量语义丰富的多模态数据[3, 26, 41, 44, 52, 56, 60]实现。OW检测器设计中的一个关键组件是视觉-语言(VL)交互模块[29, 34, 50],它将视觉特征与文本嵌入联系起来,影响检测能力。OW检测器大致分为基于匹配的检测器[56, 58],它们使用预训练的文本嵌入来识别定位对象,以及基于融合的检测器[29, 34, 50, 63],它们结合了注意力模块[29, 34]或排名门[50]来合并视觉和语言特征以进行准确分类。然而,很少有研究[8]探讨OW检测器在持续适应下的灾难性遗忘问题。相比之下,OW-COD在持续适应中研究了这一问题,MR-GDINO确保了对已见和未见类别的有前景的能力。
使用OW检测器进行少样本目标检测。我们的工作与少样本目标检测有相似之处。预训练的OW检测器[34, 53]可以使用少样本训练样本[11, 22, 53]快速适应目标领域以获得更好的性能。然而,这通常会导致对未见类别的泛化能力较差[8]。相比之下,MR-GDINO在持续少样本适应期间展示了对已见和未见类别的鲁棒性能。
2.2 持续目标检测
持续目标检测(COD)[12, 35, 64]旨在学习能够纳入新类别同时保留先前类别知识的检测器。早期的方法如ILOD[45]使用伪标签蒸馏来解决灾难性遗忘[31, 42],最近的工作改进了架构和训练策略[14, 35, 46, 64]。然而,很少有研究[8]关注OW-COD。相比之下,我们的MR-GDINO引入了一种基于检索的[9, 55]方法,用于使用预训练的OW模型[34, 50]进行持续少样本适应,防止遗忘并将COD扩展到实际场景。
3. 开放世界持续目标检测
3.1 任务定义
3.2 基准构建
3.3 OW-COD的评估指标
平均精度(Average Precision)。根据持续目标检测[8, 12, 35, 64]和开放世界目标检测[2, 29, 40, 50, 63]的工作,我们报告每个子集的平均精度(mAP),以定量评估在持续学习范式下学习的开放世界(OW)检测器的性能。具体来说,提供了每个子集的平均精度(AP),以评估在少样本持续适应后持续OW检测器的检测性能。此外,报告了先前学习过的、新见到的和未见类别的平均AP,以总结整体性能。
这种排名的优点在于,只有当检测器在已见和未见类别上都表现良好时,才能获得更高的排名,从而强调其在减轻旧类别和新类别的灾难性遗忘方面的能力。
3.4 与同类任务的比较
与COD的比较。COD[8, 12, 35, 64]通常通过将整个数据集(例如COCO[32])的注释划分为标签集组来分割注释,这并不实际,因为新类别通常出现在未见场景中[49, 51],并且在注释过程中通常会对已见图像进行完全标注[32, 44, 52]。MR-GDINO避免了这种不规则场景。此外,随着OW模型在持续学习中的使用日益增多[55, 59],OW-COD强调了对未见类别的抗遗忘能力。
与OWOD的比较。OWOD[2, 29, 40, 50, 63]可以被视为我们任务的零样本特例。相比之下,OW-COD同时强调了对旧类别、新类别和未见类别的抗遗忘能力,这很大程度上要求OW检测器的泛化能力。
与Deng等人的比较。Deng等人[8]对开放世界持续学习进行了初步研究。然而,他们的方法有两个主要缺点。首先,任务增量评估对于实际应用来说不切实际,并且过度简化了持续开放世界(OW)检测器的挑战。其次,他们使用COCO[32]进行OW评估是有限的,因为它仅包含80个常见类别,这些类别在持续学习步骤中频繁出现,从而降低了任务的复杂性。
4. 提出的方法
4.1 MR-GDINO概述
4.2 概念和交互记忆机制
受少样本学习[9, 24, 67]和持续学习[10, 55, 59]中参数高效微调技术的启发,MR-GDINO利用参数高效模块作为记忆单元(即概念记忆和视觉-语言(VL)交互记忆),为持续添加的类别构建最佳记忆。
4.3 记忆检索机制
这种设计确保了当出现未见对象时,MR-GDINO能够使用预训练的OW检测器来检测野外对象,从而保留对开放世界未见类别的检测能力。
4.4 MR-GDINO的训练
在训练过程中,预训练的OW检测器的参数被冻结,以保留鲁棒的特征表示[9, 24, 55],而只有概念和VL交互记忆被优化。具体来说,为了保持来自冻结fT的一致文本嵌入分布以进行稳定训练,记忆训练分为两个阶段。在第一阶段,MR-GDINO冻结VL交互记忆并优化概念记忆以适应新类别。在第二阶段,更新后的概念记忆被冻结,并优化交互记忆以精炼视觉-语言关系。值得注意的是,两种记忆的联合训练可以达到相似的性能,如第5.4节所述。
训练目标。与之前的工作[12, 35]不同,MR-GDINO没有使用专门为持续学习设计的额外损失。对于边界框回归,MR-GDINO在每个训练步骤中最小化L1损失和GIoU损失[43]。对于对象分类,使用焦点损失[33]来增强识别性能。
4.5 与同类方法的比较和优势
如表1所示,MR-GDINO在三个方面表现出色。在灵活性方面,它通过激活参数选择的灵活记忆检索优于CoOp和CL-DETR。在可扩展性方面,MR-GDINO通过可扩展的记忆池超越L2P[55],保留并整合知识。最后,在效率方面,MR-GDINO利用参数高效微调,优于传统的全微调方法[4, 35, 64]。这些优势确保了对旧类别、新类别和未见类别的强大性能。
5. 实验
我们将MR-GDINO与零样本GDINO[34]、CoOp[67]、L2P[55]、Adapter[20]和ZiRa[8]进行比较。所有方法都设计用于持续或快速适应。
5.1 实现细节
我们使用Swin-T[36] Grounding DINO[34]作为MR-GDINO和对比方法的预训练OW检测器。对于OW-COD的持续训练,我们按照子集的字典升序优化OW检测器,并在没有任何测试时间增强的情况下评估训练后的检测器在旧类别、新类别和未见类别上的性能。对于MR-GDINO,我们设置了默认的提示长度为10,LoRA[21]瓶颈维度为8。我们使用AdamW[38]和余弦学习率调度器[15, 37]来优化MR-GDINO,权重衰减为1e-2,每个GPU的批量大小为1。初始学习率候选为{1e-1, 4e-2, 1e-2, 1e-3, 1e-4},训练轮数范围为{1∼10}。我们进行网格搜索[27]以找到每个步骤的最佳超参数。默认情况下,τ设置为0.89。基线方法使用其默认超参数构建和优化。由于原始GDINO实现中缺少LVIS评估工具包,我们实现了相应的工具包,以公平评估所有方法在旧类别、新类别和未见类别上的性能。
5.2 与最先进方法的比较
表2展示了MR-GDINO与所有对比方法在不同少样本持续适应下的比较。在所有对比方法中,只有ZiRa[8]在10-shot持续适应后在上超越了ZS GDINO 3.1分,而其他方法未能超越GDINO。对于未见类别,只有基于Adapter[20]的持续OW检测器实现了可比但较低的mAP,所有其他方法都遭受了显著的灾难性遗忘。这些发现强烈支持我们的观点,并强调了OW-COD的重要性。相比之下,MR-GDINO在10-shot训练下实现了51.9
和20.7
。此外,即使在1-shot持续学习设置中,MR-GDINO仍然实现了46.7的已见mAP,并且在未见mAP上仅下降了0.1分,仍然大幅超越了所有对比方法。这些有前景的结果表明,MR-GDINO可以大幅提高旧类别和新类别的检测性能,同时保持对未见类别的鲁棒检测能力。我们还调查了每个训练步骤中的遗忘率,见补充材料。此外,尽管ZiRa和Adapter在已见和未见类别上展示了改进的抗遗忘能力,但它们的平均排名仍然受到已见和未见类别之间不平衡性能的影响。相比之下,MR-GDINO在排行榜上以1.3的
排名第一,突显了其在旧类别、新类别和未见类别上的平衡和卓越性能。
定性结果。此外,我们展示了ZS GDINO[34]、ZiRa[8]和MR-GDINO的定性结果,如图4所示。值得注意的是,MR-GDINO为旧类别和新类别生成了具有更高置信度的准确边界框。此外,MR-GDINO在生成未见类别的准确边界框方面优于ZiRa。这些结果进一步证实了MR-GDINO的有效性。更多定性结果见补充材料。
5.3 MR-GDINO可以减轻遗忘类别
基于在已见和未见类别上的有前景的抗遗忘能力,可以利用MR-GDINO来减轻微调中的“遗忘”类别。具体来说,我们在COCO[32]上完全微调GDINO[34],并在表3中展示了相应的评估结果。尽管在COCO上的检测性能提高到57.3 mAP,但在13个子集中的6个子集上的检测性能下降,这可以被视为遗忘的未见类别。通过在GDINO(COCO-ft)上采用MR-GDINO,上述子集的检测性能有所提高,并达到了54.5 APseen。同时,由于COCO[32]和LVIS[17]在图像领域有大量重叠,GDINO(COCO-ft)的APunseen由于完全微调而增加到23.6。与GDINO(COCO-ft)相比,采用MR-GDINO的GDINO保持了相同的APunseen。上述结果进一步验证了MR-GDINO在减轻遗忘方面的有效性。
5.4 经验分析
5.4.1 每个组件的消融研究
5.4.2 θinc插入层数的影响
接下来,我们调查了θincθinc插入层数的影响,相应结果如表5所示。通过在更多层中插入θinc,APold从44.4逐渐增加到51.3,同时保持相同的APunseen。这些结果表明,在更多VL交互层中插入θinc可以带来更好的性能,且参数增加可忽略不计。
5.4.3 解耦训练或联合训练
5.4.4 与Oracle检索的性能差距
6. 结论
我们提出了开放世界持续目标检测,要求检测器在旧类别、新类别和未见类别之间进行泛化。为了评估现有持续学习方法下的OW检测器,我们提出了OW-COD,一个激励OW检测器保留旧类别、适应新类别并保持开放世界检测能力的基准。为了解决未见类别的灾难性遗忘问题,我们提出了一个强大的基线MR-GDINO,一个利用记忆和检索机制在紧凑记忆池中构建的可扩展开放世界目标检测框架。我们的结果表明,MR-GDINO仅激活了0.1%的额外参数,便大幅减轻了灾难性遗忘,并在OW-COD上实现了最先进的性能。
相关文章:
MR-GDINO: Efficient Open-World Continual Object Detection—— 高效开放世界持续目标检测
这篇文章提出了一种名为MR-GDINO的开放世界持续目标检测方法,旨在解决开放世界检测器在持续学习过程中对已见类别和未见类别的灾难性遗忘问题。文章的主要内容和贡献如下: 问题定义:提出了开放世界持续目标检测任务,要求检测器在持…...
显示当前绑定变量
来自v$sql中的信息 测试两个变量的情况(实际可以看6个,可根据需要修改) DROP TABLE T1 PURGE; CREATE TABLE T1 AS SELECT A.*,SYSDATE RIQI FROM DBA_USERS A ORDER BY 1;var mc char(3); var id number; exec :mc:SYS; exec :id:50;set li…...
如何将xps文件转换为txt文件?xps转为pdf,pdf转为txt,提取pdf表格并转为txt
文章目录 xps转txt方法一方法二 pdf转txt整页转txt提取pdf表格,并转为txt 总结另外参考XPS文件转换为TXT文件XPS文件转换为PDF文件PDF文件转换为TXT文件提取PDF表格并转为TXT示例代码(部分) 本文测试代码已上传,路径如下ÿ…...
STM32 PWM驱动舵机
接线图: 这里将信号线连接到了开发板的PA1上 代码配置: 这里的PWM配置与呼吸灯一样,呼吸灯连接的是PA0引脚,输出比较单元用的是OC1通道,这里只需改为OC2通道即可。 完整代码: #include "servo.h&quo…...
「AI学习笔记」深度学习的起源与发展:从神经网络到大数据(二)
深度学习(DL)是现代人工智能(AI)的核心之一,但它并不是一夜之间出现的技术。从最初的理论提出到如今的广泛应用,深度学习经历了几乎一个世纪的不断探索与发展。今天,我们一起回顾深度学习的历史…...
专业视角深度解析:DeepSeek的核心优势何在?
杭州深度求索(DeepSeek)人工智能基础技术研究有限公司,是一家成立于2023年7月的中国人工智能初创企业,总部位于浙江省杭州市。该公司由量化对冲基金幻方量化(High-Flyer)的联合创始人梁文锋创立,…...
科技巨头AI投资引领未来增长
标题:科技巨头AI投资引领未来增长 文章信息摘要: 2024年科技巨头的资本支出远超预期,达到2360亿美元,主要得益于AI基础设施和数据中心建设的加速。预计2025年这一趋势将继续保持强劲增长,资本支出可能突破3000亿美元。…...
【Unity3D】Tilemap俯视角像素游戏案例
目录 一、导入Tilemap 二、导入像素风素材 三、使用Tilemap制作地图 3.1 制作Tile Palette素材库 3.2 制作地图 四、实现A*寻路 五、待完善 一、导入Tilemap Unity 2019.4.0f1 已内置Tilemap 需导入2D Sprite、2D Tilemap Editor、以及一个我没法正常搜出的2D Tilemap…...
Java 知识速记:全面解析 final 关键字
Java 知识速记:全面解析 final 关键字 什么是 final 关键字? final 关键字是 Java 中的一个修饰符。它可以用于类、方法和变量,其作用是限制对这些元素的修改。究竟如何限制?我们来逐个分析。 final 在变量中的用法 1. 声明常…...
《智能家居“孤岛危机”:设备孤立如何拖垮系统优化后腿》
在科技飞速发展的今天,智能家居不再是遥不可及的概念,它正逐渐走进千家万户,为我们描绘出舒适便捷的未来生活蓝图。想象一下,下班回家前,你可以通过手机远程开启空调,让室内温度恰到好处;到家时…...
大数据学习之Kafka消息队列、Spark分布式计算框架一
Kafka消息队列 章节一.kafka入门 4.kafka入门_消息队列两种模式 5.kafka入门_架构相关名词 Kafka 入门 _ 架构相关名词 事件 记录了世界或您的业务中 “ 发生了某事 ” 的事实。在文档中 也称为记录或消息。当您向 Kafka 读取或写入数据时,您以事件的 形式执行…...
Linux《基础指令》
在之前的Linux《Linux简介与环境的搭建》当中我们已经初步了解了Linux的由来和如何搭建Linux环境,那么接下来在本篇当中我们就要来学习Linux的基础指令。在此我们的学习是包括两个部分,即指令和关于Linux的基础知识;因此本篇指令和基础知识的…...
Avalonia+ReactiveUI跨平台路由:打造丝滑UI交互的奇幻冒险
一、引言 在当今数字化时代,跨平台应用开发已成为大势所趋。开发者们迫切需要一种高效、灵活的方式,能够让应用程序在不同操作系统上无缝运行,为用户提供一致的体验。Avalonia 和 ReactiveUI 的组合,宛如一对天作之合的舞者&…...
Ansible自动化运维实战--通过role远程部署nginx并配置(8/8)
文章目录 1、准备工作2、创建角色结构3、编写任务4、准备配置文件(金甲模板)5、编写变量6、编写处理程序7、编写剧本8、执行剧本Playbook9、验证-游览器访问每台主机的nginx页面 在 Ansible 中,使用角色(Role)来远程部…...
H264原始码流格式分析
1.H264码流结构组成 H.264裸码流(Raw Bitstream)数据主要由一系列的NALU(网络抽象层单元)组成。每个NALU包含一个NAL头和一个RBSP(原始字节序列载荷)。 1.1 H.264码流层次 H.264码流的结构可以分为两个层…...
批量解密,再也没有任何限制了
有的时候我们在网上下载了PDF文档。发现没有办法进行任何的操作,就连打印权限都没有。今天给大家介绍的这个软件可以一键帮你进行PDF解密,非常方便,完全免费。 PDF智能助手 批量解密PDF文件 这个软件不是很大,只有10MBÿ…...
认识小程序的基本组成结构
1.基本组成结构 2.页面的组成部分 3.json配置文件 4.app.json文件(全局配置文件) 5.project.config.json文件 6.sitemap.json文件 7.页面的.json配置文件 通过window节点可以控制小程序的外观...
模型I/O
文章目录 什么是模型I/O模型I/O功能之输出解析器输出解析器的功能输出解析器的使用Pydantic JSON输出解析器结构化输出解析器 什么是模型I/O 模型I/O在所有LLM应用中,核心元素无疑都是模型本身。与模型进行有效的交互是实现高效、灵活和可扩展应用的关键。LangChain…...
DeepSeek模型:开启人工智能的新篇章
DeepSeek模型:开启人工智能的新篇章 在当今快速发展的技术浪潮中,人工智能(AI)已经成为了推动社会进步和创新的核心力量之一。而DeepSeek模型,作为AI领域的一颗璀璨明珠,正以其强大的功能和灵活的用法&…...
git push到远程仓库时无法推送大文件
一、错误 remote: Error: Deny by project hooks setting ‘default’: size of the file ‘scientific_calculator’, is 164 MiB, which has exceeded the limited size (100 MiB) in commit ‘4c91b7e3a04b8034892414d649860bf12416b614’. 二、原因 本地提交过大文件&am…...
初识ExecutorService
设计目的 ExecutorService是Java并发包(java.util.concurrent)的一部分,旨在提供一种更高层次的抽象来管理线程和任务执行。它解决了手动创建和管理线程带来的复杂性和资源浪费问题,通过复用固定数量的线程池来处理大量短生命周期的任务,从而…...
初二回娘家
昨天下午在相亲相爱一家人群里聊天,今天来娘家拜年。 聊天结束后,开始准备今天的菜肴,梳理了一下,凉菜,热菜,碗菜。 上次做菜,粉丝感觉泡的不透,有的硬,这次使用开水浸泡…...
js基础(黑马程序员)
Web APIs(day6) 一、正则表达式 1.介绍 正则表达式(Regular Expression):是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象 通常用来查找、替换那些符合正则表达式的文本&#x…...
Java---猜数字游戏
本篇文章所实现的是Java经典的猜数字游戏 , 运用简单代码来实现基本功能 目录 一.题目要求 二.游戏准备 三.代码实现 一.题目要求 随机生成一个1-100之间的整数(可以自己设置区间),提示用户猜测,猜大提示"猜大了",…...
Oracle Primavera P6 最新版 v24.12 更新 2/2
目录 一. 引言 二. P6 EPPM 更新内容 1. 用户管理改进 2. 更轻松地标准化用户设置 3. 摘要栏标签汇总数据字段 4. 将里程碑和剩余最早开始日期拖到甘特图上 5. 轻松访问审计数据 6. 粘贴数据时排除安全代码 7. 改进了状态更新卡片视图中的筛选功能 8. 直接从活动电子…...
【React】 react路由
这一篇文章的重点在于将React关于路由的问题都给搞清楚。 一个路由就是一个映射关系,key:value。key是路径,value 可能是function或者component。 安装react-router-dom包使用路由服务,我这里想要用的是6版本的包,因此后面加”6&q…...
Linux的常用指令的用法
目录 Linux下基本指令 whoami ls指令: 文件: touch clear pwd cd mkdir rmdir指令 && rm 指令 man指令 cp mv cat more less head tail 管道和重定向 1. 重定向(Redirection) 2. 管道(Pipes&a…...
【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.18 逻辑运算引擎:数组条件判断的智能法则
1.18 逻辑运算引擎:数组条件判断的智能法则 1.18.1 目录 #mermaid-svg-QAFjJvNdJ5P4IVbV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-QAFjJvNdJ5P4IVbV .error-icon{fill:#552222;}#mermaid-svg-QAF…...
C语言实现库函数strlen
size_t是 unsigned int fgets会读入\n,用strcspn函数除去 assert判读指针是否为空指针,使用前要引头文件<assert.h> #include <stdio.h> #include <assert.h> size_t mystrlen(const char* str) {assert(str);size_t count 0;while …...
18 大量数据的异步查询方案
在分布式的应用中分库分表大家都已经熟知了。如果我们的程序中需要做一个模糊查询,那就涉及到跨库搜索的情况,这个时候需要看中间件能不能支持跨库求交集的功能。比如mycat就不支持跨库查询,当然现在mycat也渐渐被摒弃了(没有处理笛卡尔交集的…...
FastExcel使用详解
文章目录 FastExcel使用详解一、引言二、环境准备与依赖引入1、Maven 依赖引入2、实体类定义 三、核心操作:读写 Excel1、读取 Excel1.1 自定义监听器1.2 读取文件 2、写入 Excel2.1 简单写入2.2 模板写入 四、Spring Boot 集成示例1、文件上传(导入&…...
深度学习python基础(第四节) 元组、字符串、集合和字典
本节主要介绍元组,字符串,集合,字典的基本语法定义,以及相关的操作. 元组的定义和操作 元组一旦定义完成就不可修改. """ # 定义元组字面量 (元素,元素,....,元素) # 元素可以不同的数据类型# 定义元组变量 变量名称 (元素,…...
QT串口通信,实现单个温湿度传感器数据的采集
1、硬件设备 RS485中继器(一进二出),usb转485模块、电源等等 => 累计115元左右。 2、核心代码 #include "MainWindow.h" #include "ui_MainWindow.h"MainWindow::...
绘制决策树尝试3
目录 代码解读AI 随机状态 种子 定义决策树回归模型 tree的decision regressor fit 还可用来预测 export 效果图 我的X只有一个特征 为何这么多分支 ??? 这是CART回归 CART回归 为什么说代码是CART回归? 不是所有的决…...
【逻辑学导论第15版】A. 推理
识别下列语段中的前提与结论。有些前提确实支持结论,有些并不支持。请注意,前提可能直接或间接地支持结论,而简单的语段也可能包含不止一个论证。 例题: 1.管理得当的民兵组织对于一个自由国家的安全是必需的,因而人民…...
qt-C++笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphicsRectItem的区别
qt-C笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphicsRectItem的区别 code review! 参考笔记 1.qt-C笔记之重写QGraphicsItem的paint方法(自定义QGraphicsItem) 文章目录 qt-C笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphic…...
[Java]泛型(二)泛型方法
1.定义 在 Java 中,泛型方法是指在方法声明中使用泛型类型参数的一种方法。它使得方法能够处理不同类型的对象,而不需要为每种类型写多个方法,从而提高代码的重用性。 泛型方法与泛型类不同,泛型方法的类型参数仅仅存在于方法的…...
ProfibusDP主机与从机交互
ProfibusDP 主机SD2索要数据下发:68 08 F7 68 01 02 03 21 05 06 07 08 1C 1668:SD2 08:LE F7:LEr 68:SD2 01:目的地址 02:源地址 03:FC_CYCLIC_DATA_EXCHANGE功能码 21:数据地址 05,06,07,08&a…...
jQuery小游戏(二)
jQuery小游戏(二) 今天是新年的第二天,本人在这里祝大家,新年快乐,万事胜意💕 紧接jQuery小游戏(一)的内容,我们开始继续往下咯😜 游戏中使用到的方法 key…...
【MQ】如何保证消息队列的高可用?
RocketMQ NameServer集群部署 Broker做了集群部署 主从模式 类型:同步复制、异步复制 主节点返回消息给客户端的时候是否需要同步从节点 Dledger:要求至少消息复制到半数以上的节点之后,才给客户端返回写入成功 slave定时从master同步数据…...
简易计算器(c++ 实现)
前言 本文将用 c 实现一个终端计算器: 能进行加减乘除、取余乘方运算读取命令行输入,输出计算结果当输入表达式存在语法错误时,报告错误,但程序应能继续运行当输出 ‘q’ 时,退出计算器 【简单演示】 【源码位置】…...
AI大模型开发原理篇-4:神经概率语言模型NPLM
神经概率语言模型(NPLM)概述 神经概率语言模型(Neural Probabilistic Language Model, NPLM) 是一种基于神经网络的语言建模方法,它将传统的语言模型和神经网络结合在一起,能够更好地捕捉语言中的复杂规律…...
SpringBoot 基础特性
SpringBoot 基础特性 SpringApplication 相关特性 自定义 banner 在主配置文件写 banner.txt 的地址 #也可以不写默认路径就是 banner.txt #从类路径下找 banner #类路径就是 编译的target 目录 还有导入的第三方类路径。 spring.banner.locationclasspath:banner.txt#控制…...
网站快速收录:提高页面加载速度的重要性
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/32.html 网站快速收录中,提高页面加载速度具有极其重要的意义。以下从多个方面详细阐述其重要性: 一、提升用户体验 减少用户等待时间:页面加载速度直接…...
如何使用formlinker,重构微软表单创建的数字生产力法则?
仅需三步:上传文件-下载文件-导入文件到微软表单 凌晨两点的格式炼狱:被浪费的300万小时人类创造力 剑桥大学的实验室曾捕捉到一组震撼数据:全球教育工作者每年花在调整试题格式上的时间,足够建造3座迪拜哈利法塔。当北京某高校的…...
从零搭建一个Vue3 + Typescript的脚手架——day3
3.项目拓展配置 (1).配置Pinia Pinia简介 Pinia 是 Vue.js 3 的状态管理库,它是一个轻量级、灵活、易于使用的状态管理库。Pinia 是 Vue.js 3 的官方状态管理库,它可以帮助开发者更好地管理应用的状态。Pinia 是一个开源项目,它有丰富的文档…...
Three.js实战项目02:vue3+three.js实现汽车展厅项目
文章目录 实战项目02项目预览项目创建初始化项目模型加载与展厅灯光加载汽车模型设置灯光材质设置完整项目下载实战项目02 项目预览 完整项目效果: 项目创建 创建项目: pnpm create vue安装包: pnpm add three@0.153.0 pnpm add gsap初始化项目 修改App.js代码&#x…...
Linux——网络(tcp)
文章目录 目录 文章目录 前言 一、TCP逻辑 1. 面向连接 三次握手(建立连接) 四次挥手(关闭连接) 2. 可靠性 3. 流量控制 4. 拥塞控制 5. 基于字节流 6. 全双工通信 7. 状态机 8. TCP头部结构 9. TCP的应用场景 二、编写tcp代码函数…...
Ubuntu Server 安装 XFCE4桌面
Ubuntu Server没有桌面环境,一些软件有桌面环境使用起来才更加方便,所以我尝试安装桌面环境。常用的桌面环境有:GNOME、KDE Plasma、XFCE4等。这里我选择安装XFCE4桌面环境,主要因为它是一个极轻量级的桌面环境,适合内…...
分享|通过Self-Instruct框架将语言模型与自生成指令对齐
结论 在大型 “指令调整” 语言模型依赖的人类编写指令数据存在数量、多样性和创造性局限, 从而阻碍模型通用性的背景下, Self - Instruct 框架, 通过 自动生成 并 筛选指令数据 微调预训练语言模型, 有效提升了其指令遵循能…...