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

【论文阅读】SCGC : Self-supervised contrastive graph clustering

论文地址:SCGC : Self-supervised contrastive graph clustering - ScienceDirect

代码地址: https://github.com/gayanku/SCGC


摘要

图聚类旨在发现网络中的群体或社区。越来越多的模型使用自编码器(autoencoders)结合图神经网络(GNN)来实现有效的聚类,并将结构信息融合进来。然而,基于卷积或注意力变体的GNN在动态融合方面存在不足,容易出现过度平滑、噪声、节点异质性等问题,计算开销较大,且通常需要完整图结构的存在。为此,作者提出了SCGC模型,它通过无增强的边对比损失实现动态的软结构融合。此外,还提出了SCGC*,它采用了更具表现力的新型距离度量——影响力(Influence),并结合作者的影响力增强对比(IAC)损失,所需的模型参数仅为原来的一半。SCGC和SCGC*模型能够动态融合具有辨别性的节点表示,共同细化软聚类分配,完全消除传统GNN中的卷积和注意力机制,仅使用简单的线性单元,却能高效地融合结构信息。它们对层深度不敏感;具有较强的鲁棒性,能抵抗过度平滑、错误边缘和异质性问题;支持批处理,且无增强,放宽了同质性假设,并能轻松并行化。作者在多个基准测试上显著超越了现有最先进的技术,包括图像、传感器数据、文本和引用网络,且效率非常高。具体而言,DBLP上的ARI提升了20%,NMI提升了18%;训练时间总体减少了55%,推理时间总体减少了81%。

引言

图研究因其高表达性和图结构数据的普遍性而受到越来越多的关注[1]。图的独特非欧几里得数据结构非常适合表示多样化的特征丰富的领域,用于机器学习[2]。许多现实世界的任务,如引文网络、社交网络和蛋白质-蛋白质相互作用分析,都依赖于图数据挖掘技术。图聚类通过将相似的节点分配到不同的组中来发现网络中的群体或社区[2]。聚类已被广泛应用于图像[3,4]、文本[5,6]和社交网络[7,8]。到目前为止,基于自编码器(AE)的深度聚类方法[6,9-11]已取得了最先进的性能。

为了利用结构中丰富的信息,许多研究者[2,6,11,12]将图神经网络(GNN)与自编码器(AE)结合使用[13]。尽管这些模型在聚类上取得了最先进的结果,但由于(a)过度平滑,(b)噪声邻居(异质性),和(c)the suspended animation problem[1],GNN在结构融合中的依赖性存在挑战。GNN通过堆叠层[14]促进不直接连接的节点之间的交互,从而导致过度平滑,使得节点表示变得不可区分,原因是过度混合[15]。为了缓解这一问题,大多数GNN是浅层的,无法从深层模型中受益。像GCNII[16]和FDGATII[1]这样的模型可以实现更高的深度,但仍然需要预先确定适当的深度,并使用计算开销较大的卷积或softmax注意力操作。

众所周知,结构信息表示了节点之间的潜在依赖关系[6]。然而,这种依赖关系可以是直接(局部)依赖,也可以是间接(非局部)依赖,涉及一个或多个任意组合的阶数。因此,使用固定的预选择卷积或其他层结构来逼近这种不可预测的潜在结构并非易事。最近,更多的研究者转向了更简单且高效的模型实现[4,15,17]。尽管已有研究[4,18]使用对比损失来学习图嵌入,但它们使用了昂贵的增强操作,并包含了基于卷积的GNN形式。

在这项工作中,如图1所示,作者展示了如何从主训练循环和推理中消除先前工作的GNN和AE,同时仍能在自监督图聚类中获得最先进的成果。作者通过无增强的边对比损失来融合结构,避免复杂的融合操作,还能够使用更简单的单一自监督。作者提出的深度聚类方法通过无增强的边对比损失学习动态的软结构融合,以强制执行图结构和聚类优化,而不是尝试匹配潜在的节点依赖动态。作者提出了两个模型:SCGC和SCGC*。在SCGC中,使用1-hop信息进行软结构融合,并保留AE,如先前工作中所述。在SCGC中,通过提出的IAC损失使用聚合的多跳信息(称之为影响力),并丢弃了AE。具体来说,在SCGC中,使用最少的预训练(30个epoch,子批处理)嵌入来有效且高效地替代训练过程中的AE。对于结构和特征融合,引入了一种新型的对比损失度量——影响力,并定义了具有放宽同质性假设的影响力增强对比(IAC)损失。此外,使用了基于软标签的自监督机制。

SCGC在计算上是高效的,因为它由简单的线性层(MLP)组成。没有昂贵的卷积、softmax操作或增强。无需通过模型传递邻接信息,从而将模型结构与潜在的节点依赖结构解耦。因此,SCGC结构可以在不同数据集之间保持不变,正如通过使用图像、文本和图模式的基准数据集所展示的那样。SCGC非常适合边缘和资源受限的应用。通过仅使用无增强的对比损失进行软结构融合,SCGC对噪声边缘具有更强的鲁棒性。此外,由于使用基于概率分布的自监督机制,该模型也对特征噪声和类别/标签噪声(即异质性)具有较强的鲁棒性。我们的主要贡献包括:

  • 提出了一种新型的深度聚类模型SCGC,消除了传统GNN在图聚类中的需求。SCGC完全将结构与图解耦,并将其转移到一个方便的损失函数中。
  • 引入了影响力度量作为复杂图结构的简单而强大的代理,提供了高效的计算过程,并提出了具有理论见解的影响力增强对比(IAC)损失,并展示了其实验优势。
  • 在6个基准测试(包括图像、传感器数据、文本和引文网络数据)上的实验表明,SCGC在准确性、训练和推理效率上超越了现有最先进的图聚类方法。

尽管现有的深度图聚类方法通常使用基于AE的重构损失最小化[20],作者证明了AE仅在最小初始化(30个epoch)时是必要的,并且作者的训练和推理阶段不需要AE。此外,通过学习一个结构感知的变换,图信息在推理时不再是必需的;因此,作者的模型对节点的缺失连接具有较强的鲁棒性。此外,大多数对比模型使用SimCLR[16]的噪声对比估计(NCE)方法,需要增强视图,通常每个epoch都需要增强,并假设数据是独立同分布(IID)的。其他模型假设连接的节点是相似的:同质性。相反,作者使用通过作者新颖的影响力度量学习到的软局部-全局结构融合。通过使用有效的基于损失的模型来传递结构,能够使用简单的MLP,避免了昂贵的增强、卷积和注意力机制。最终的模型更加高效和快速。SCGC同样适用于图像、文本和图数据。

模型

对于图中任意两个节点 i 和 j,不失一般性地假设节点 j 距离节点 i 有 R 个跳数(hop),如图 2(a) 所示,节点 j 的邻域信息需要通过中介节点 p,q,r,s传递才能到达节点 i。为了实现这一点,GNN(图神经网络)架构在训练和推理阶段携带并使用结构信息,例如通过邻接矩阵或消息传递。同时,堆叠层被用来增加感受野(receptive field)并覆盖多跳节点。然而,这种结合模糊了特征的重要性[25],并且导致当前最先进模型中复杂的结构和计算开销[4],如图 1 所示。

相反,作者提出一个单一的综合值来表示 i 和 j 之间的所有交互。实际上,就是一个单一的标量,如图 2(a) 所示,记作 γij。这可以通过用一组值替代图结构来极大地简化图结构,每条实际的图边 i,j对应一个标量值。由于现实世界的图通常是非常稀疏的,邻接矩阵 A 大多数元素为零[31],因此使用边(edges)进一步提高了可扩展性和效率。因此,GNN 架构不再需要层或更大的感受深度来捕获重要的多跳邻域信息。最终,模型变得更加简单且有效,并且避免了过拟合。作者将这种交互的综合体称为 影响力(Influence)。

影响力 能够有效地捕获局部和全局结构,并对异质性具有较强的鲁棒性通常,GNN 架构很难确定在哪个深度(或跳数)下,连接邻居信息对捕获局部和全局结构最有帮助。不同的数据集显示了不同程度的同质性和异质性。因此,在没有先验信息的情况下,选择深度(跳数)可能并非最优。例如,对于同质性数据集,1-hop 设计更为合适,因为相互连接的节点更有可能是相似的[4,27]。对于异质性数据集,这些数据集更可能包含不同标签的节点相互连接,研究人员已经提出了使用固定跳数的设计[6,11,19],或者提出了通过堆叠层来学习跳数的混合设计[25]。如图 2(a) 所示,使用组合交互不会假设任何特定的跳数,而是使所有跳数信息都可以用于学习。

计算 影响力 并非易事,因为存在相互依赖关系。例如,节点 r 也受到节点 m,n的影响,并且这部分影响会在通过 r 时与节点 j 的影响力结合。由于所有节点都会受到其他节点的影响,因此需要一种计算简单且高效的方法来获得 影响力。在第 3.1.1 节中,作者提出了一种优雅且简单的机制,基于矩阵的性质和图边的稀疏性来计算 影响力

在第 3.1 节中,作者展示了 影响力 度量如何作为损失函数使用,称为 IAC(影响力增强对比)损失。最后,作者推导了提出的 SCGC 架构,它使用 IAC 损失来处理结构,并使用基于 KL 散度的自监督来进行聚类。聚类本质上是无监督的[32],而 MLP(多层感知机)通常是有监督的。

与以前的 GNN 架构不同,SCGC 不包含 GNN,而是使用一个简单且计算高效的 MLP 来进行图聚类,使用 IAC 损失来处理结构,并基于 KL 散度的自监督进行聚类。IAC 是无增强且边对比的,与大多数对比损失方法不同。此外,与以前使用多模态融合的最先进模型不同,SCGC 使用单一模态,避免了需要进行昂贵的多次优化和端点融合,但如表 2 所示,它取得了更好的结果。此外,如图 6 所示,作者实现了更高的效率。

3.1. Influence Augmented Contrastive (IAC) Loss

如图 2(a) 所示,图形从一个独特的能力中受益:多个深度下的非邻接节点可以对一个节点产生任意的不相似且可加的影响。通过使用前一节定义的 影响力(Influence),可以更广泛地捕捉这些来自局部和全局邻域的可加效应,并且适用于给定的深度 R。尽管它可以携带更丰富的信息,但重要的是,影响力 通过结合间接的远距离节点,放宽了同质性(homophily)假设。以往的 GNN 模型天真地假设一个固定的深度关系,即通过超参数搜索得到的单一 r。典型的 GNN 层试图通过一个固定的层结构来利用这一特性。然而,这个层结构需要与潜在的影响力结构对齐。此外,GNN 层普遍应用于所有节点,因此错误地假设所有节点从不同深度效应中获得相同的影响(本质上是假设只有一个固定的 r)。因此,GNN 模型往往是次优的。此外,大多数 GNN 模型由于过度平滑问题(over smoothing)无法超过 2 层深度,像 FDGATII[1] 和 GCNII[16] 等模型试图解决这一问题。相比之下,影响力 是一种简单且高效的替代方案。

作者将 影响力 γij作为加权因子,应用于一种特定但流行的对比损失[4],以便为第 i 个节点公式化 IAC 损失,其表达式为:

其中,τ 是温度参数,γij是节点 i 和节点 j 之间连接的 影响力,且对于所有 k∈{1,2,…,B},k≠i。目前,使用所有节点 N,而不是批量 B,因此 B=N。

本质上,对于每个节点,其累积的 R-hop 邻域影响力用于区分正样本,将其与所有节点进行对比。IAC 损失 鼓励有影响力的节点在嵌入空间中比没有影响力的节点更接近。

图 2(b) 说明了 IAC 损失 的公式化过程。在接下来的两个子节中,将概述如何计算累积影响力,并提供相似性度量方法的详细信息,即距离(distance)。

3.1.1. 确定影响力

图中的高阶关系和高阶邻近性是通过邻接矩阵的幂次来获取的。将邻接矩阵 A 提升到 r-次方提供了关于图中节点在第 r 距离(或深度或跳数)上的高阶连接信息 [4,31]。

对于归一化的邻接矩阵 A^:

其中,I是自连接矩阵,D 是对角矩阵,且 r-次方提供了节点 i 和节点 j 之间的第 r 跳关系的强度 [4]。与以往所有的研究不同,作者提出通过所有节点关系的加性形式来计算影响力,而不是将其限制在某个特定的第 r 跳邻域内。具体来说,将归一化邻接矩阵的第 R 次累积幂定义为影响力 I^R,如图 2(a) 所示。因此:

重要的是,I^R包含了从 1 到 R 的所有之前邻域跳关系的聚合集。图 3 是 IAC 过程的可视化。归一化邻接矩阵 A^ 的各次幂,直到第 R 次,都被聚合以得到 I^R。

直观地来说,邻接矩阵 A^的每一幂次表示图中一对节点之间特定长度路径的数量。具体而言,A^r 的 ij-th 边给出节点 i 和节点 j 之间的 r-长度路径数。路径数越多,表示节点对之间的旅行方式越多,连接性越强。通过累加这些幂次,影响力聚合了关于各种长度路径的信息,从而捕捉图的整体连接性和结构。将幂次累加直到某个深度 R 可以捕获节点间在 R 跳距离内的累积连接性,跨越从局部到全局的结构信息。

计算 I^R只需要在训练前进行一次,使用邻接矩阵,且开销非常小。在大规模图中,可以使用稀疏实现来计算 I^R。实际的图通常是极其稀疏的,邻接矩阵 A 大多数是零 [31]。此外,I^R 的计算完全不涉及模型的学习过程,不涉及昂贵的张量操作,且边缘计算可以轻松地并行化。

边缘 γij 的影响力可以表示为:

需要注意的是,只有当节点 j 从其 r-跳邻域的节点 i 获得非零影响时,γij才会取得非零值。总结如下:

与本研究中影响力的定义不同,[4] 提出了基于余弦相似度的 NContrast (NC) 损失用于分类,其中每个节点仅考虑第 r 跳邻域,而不是更全面的加性影响力。具体来说,NContrast 仅使用图 3 中的一个 A^r,并且仅适用于有监督的分类任务。NC 可以被视为更通用的 IAC 损失的一个特定情况。作者采用 [4] 的方法进行自监督聚类,使用公式 (1) 和:

对于批次 B 的完整 IAC 或 NC 对比损失为:

请注意,尽管公式 (5) 对于 IAC 和 NC 看似相同,但它们每个在计算 ℓi时使用不同的 γij。IAC 使用更具信息量的聚合邻域 I^R。

3.1.2. 相似性函数

采用在谱聚类中常用的高斯核函数来计算两个样本之间的相似性,定义为:

其中,τ是一个超参数,表示方差或温度。由于:

以下相似性函数可以作为一个高效的替代:

3.2. 通过置信度增强的自监督聚类

图聚类本质上是无监督的。为此,使用基于概率分布的置信软标签作为聚类增强的自监督机制,如图 2(c) 所示。与现有的工作 [2,10,19] 类似,首先获得嵌入 zi 和聚类中心 μ之间的软聚类分配概率 qiu,其中 u 是聚类,使用学生的 t-分布 [33] 作为核函数来衡量相似性,以处理尺度不同的聚类并便于计算 [2],公式如下:

其中,聚类中心 μ是通过在预训练自编码器(AE)上进行 K-means 聚类初始化的,η是学生 t-分布的自由度。在所有实验中,将 Q作为所有样本的聚类分配分布,并且保持 η=1\,如以往的工作 [6,11] 所示。

靠近聚类中心的节点在 Q 中具有更高的软分配概率。通过将 Q 提升到平方并归一化,定义了一个目标分布 P,该分布强调了置信度较高的分配,定义如下:

为了使数据表示更接近聚类中心,并提高聚类的内聚性,最小化 Q 和 P分布之间的 KL 散度损失,这迫使当前的分布 Q 接近更有置信度的目标分布 P,通过使用分布 Q 来监督聚类分配 P,然后通过最小化 KL 散度来反向监督分布 Q,具体为:

KL 散度更新模型的方式更加平滑,并减少了对嵌入的剧烈扰动 [6]。此外,它可以兼顾 SCGC 的结构优化和特征优化目标。

3.3. 初始聚类中心和嵌入

为了获得初始嵌入 z 和聚类中心 μ,作者使用基于自编码器(AE)的子批次预训练阶段,通过最小化原始数据 X和重构数据 X^ 之间的重构损失,即:

编码器和解码器定义如下:

3.4. 最终提出的模型

初步实验表明,使用 IAC 后,一旦获得了可接受的聚类中心 μ,特征重构目标就变得冗余。自编码器可以仅通过编码器(MLP)替代(公式 11),这将减少一半的参数数量和训练开销。因此,提出了两个模型变种,分别是基于 AE 的 SCGC 和基于 MLP 的 SCGC*,它们的目标函数分别为:

  • SCGC:

  • SCGC*:

其中,α>0 是平衡结构引入的超参数,β>0控制聚类优化的超参数。

实验


挺有新意的,但是数据集没有大规模数据,可以试一下大数据集测试一下。。

相关文章:

【论文阅读】SCGC : Self-supervised contrastive graph clustering

论文地址:SCGC : Self-supervised contrastive graph clustering - ScienceDirect 代码地址: https://github.com/gayanku/SCGC 摘要 图聚类旨在发现网络中的群体或社区。越来越多的模型使用自编码器(autoencoders)结合图神经网…...

python pyqt5+designer的信号槽和动态显示

至少需要两个文件,一个是python的主文件,一个是designer的UI文件 1.对UI文件的处理 首先需要将UI文件转化成python文件,并且引入到主文件中。 2.在主文件中接受UI上的一些动作和返回主文件处理的数据到UI界面上。 框中选中的部分&#xff0c…...

版本控制系统Helix Core 2024.2增强功能:与OpenTelemetry协议集成、Delta同步和传输等

“Perforce团队非常高兴为您带来Helix Core 2024.2版本,它拥有众多旨在提高团队效率、优化工作流程的增强功能。通过新的Open Telemetry协议集成,团队现在可以轻松将结构化日志集成到可观测性平台中。DeltaTransfer现在也适用于同步操作——这是2024.1版…...

certificate verify failed: unable to get local issuer certificate (_ssl.c:10

出现 “certificate verify failed: unable to get local issuer certificate (_ssl.c:10)” 这个错误通常是因为Python在尝试建立HTTPS连接时,无法验证服务器的SSL证书。这可能是因为本地系统中缺少必要的根证书,或者服务器的证书链不完整,导…...

关于大一上的总结

大一上总结 前言 源于学长们都喜欢写总结,今晚也正好听见一首有点触动心灵的歌,深有感慨,故来此写下这篇总结 正文 1.暑假前的准备 暑假之前姑且还是学习了基本的C语法,大概是到了结构体的地方,进度很慢&#xff0…...

JavaScript的基础知识

在鸿蒙操作系统的应用开发中,JavaScript作为一种广泛使用的编程语言,扮演着重要的角色。无论是构建用户界面还是实现业务逻辑,理解JavaScript的基础知识都是必不可少的。本文将深入探讨鸿蒙开发中与JavaScript相关的几个关键概念:…...

数据结构之单链表(超详解)

文章目录 1. 单链表1.1 概念、结构1.2 结点1.2.1 链表的性质 2. 链表的打印3. 尾插、头插创建结点尾插头插 4. 尾删、头删尾删头删 5. 查找指定结点6. 指定位置之前、之后插入数据指定位置之前插入数据指定位置之后插入数据 7. 删除指定位置结点7.1 删除指定位置之后结点8. 链表…...

告别编程困惑:GDB、冯诺依曼、操作系统速通指南

🌟 快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。🌟 🚩用通俗易懂且不失专业性的文字,讲解计算机领域那些看似枯燥的知识点🚩 目录 前言 一…...

网络分析工具-tcpdump

文章目录 前言一、tcpdump基础官网链接命令选项详解常规过滤规则tcpdump输出 一、tcpdump实践HTTP协议ICMP状态抓包 前言 当遇到网络疑难问题的时候,抓包是最基本的技能,通过抓包才能看到网络底层的问题 一、tcpdump基础 tcpdump是一个常用的网络分析工…...

基于AI边缘计算盒子的智慧零售场景智能监控解决方案

一、方案背景 随着零售业的快速发展,传统零售模式面临着诸多挑战,如人力成本高、管理效率低、顾客体验不佳等。智慧零售借助人工智能、物联网等技术手段,实现对零售场景的全面感知和智能管理。AI边缘计算盒子作为智慧零售的关键技术之一&…...

STM32G431收发CAN

1.硬件连接 PB8作为CAN_RX,PB9作为CAN_TX,连接一个CAN收发器TJA1051T/3 2. CubeMX里配置CAN 设置连接FDCAN1的参数,使用1个标准过滤器,波特率位500K 使能FDCAN1的中断 3 自动生成代码 3.1 初始化 static void MX_FDCAN1_In…...

如何得到深度学习模型的参数量和计算复杂度

1.准备好网络模型代码 import torch import torch.nn as nn import torch.optim as optim# BP_36: 输入2个节点,中间层36个节点,输出25个节点 class BP_36(nn.Module):def __init__(self):super(BP_36, self).__init__()self.fc1 nn.Linear(2, 36) # …...

2025年股指期货每月什么时候交割?

股指期货交割日是指期货合约到期时,买卖双方根据合约规定的指数价值进行现金结算的日期。在中国市场中,股指期货的交割日通常是合约到期月份的第三个星期五。这一规律适用于所有股指期货合约,无论是当月、下月合约,还是季度月合约…...

自从学会Git,感觉打开了一扇新大门

“同事让我用 Git 提交代码,我居然直接把项目文件压缩发过去了……”相信很多初学者都经历过类似的窘境。而当你真正掌握 Git 时,才会发现它就像一本魔法书,轻松解决代码管理的种种难题。 为什么 Git 能成为程序员的标配工具?它究…...

Ansys Discovery 中的网格划分方法:探索模式

本篇博客文章将介绍 Ansys Discovery 中可用于在探索模式下进行分析的网格划分方法。我们将在下一篇博客中介绍 Refine 模式下的网格划分技术。 了解 Discovery Explore 模式下的网格划分 网格划分是将几何模型划分为小单元以模拟系统在不同条件下的行为的过程。这是通过创建…...

关于 AWTK 和 Weston 在旋转屏幕时的资源消耗问题

关于 AWTK 和 Weston 在旋转屏幕时的资源消耗问题,首先需要理解这两者旋转的本质区别及其资源开销。 AWTK的屏幕旋转: AWTK旋转的实现方式: AWTK 是一个用户界面工具包,它通过图形渲染系统处理所有控件和窗口的旋转。当你使用 w…...

grouped.get_group((‘B‘, ‘A‘))选择分组

1. df.groupby([team, df.name.str[0]]) df.groupby([team, df.name.str[0]]) 这一部分代码表示对 DataFrame df 按照 两个条件 进行分组: 按照 team 列(即团队)。按照 name 列的 首字母(df.name.str[0])。 df.name.s…...

HTML——66.单选框

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>单选框</title></head><body><!--input元素的type属性&#xff1a;(必须要有)--> <!--单选框:&#xff08;如所住省会&#xff0c;性别选择&…...

Couchbase 和数据湖技术的区别、联系和相关性分析

Couchbase 和数据湖技术&#xff08;如 Delta Lake、Apache Hudi、Apache Iceberg&#xff09;分别是两类不同的数据存储与管理系统&#xff0c;但它们也可以在特定场景中结合使用&#xff0c;以下是它们的区别、联系和相关性分析&#xff1a; 区别&#xff1a; 1. 核心用途&a…...

springboot3 性能优化

Spring Boot 3 是基于 Spring Framework 6 的最新版本,支持 Java 17,并引入了多项改进,包括原生镜像支持、性能提升和现代化开发支持。以下是对 Spring Boot 3 应用进行全面优化的详细步骤: 一、开发环境优化 1. 使用最新版本 确保依赖版本为最新: Spring Boot 3.x。 J…...

C++之运算符重载详解篇

1.概念 重载概念&#xff1a; C 允许在同一作用域中的某个函数和运算符指定多个定义&#xff0c;分别称为函数重载和运算符重载。 运算符重载概念&#xff1a;对已有的运算符重新进行定义&#xff0c;赋予其另一种功能&#xff0c;以适应不同的数据类型 这里主要介绍…...

深度学习应用工程化中的节能减排最佳实践

文章大纲 简介为什么要在制造业节能减排能耗估算显卡能耗CPU 能耗树莓派能耗加速卡能耗硬件层面的改进边缘端硬件简介树莓派 + 加速卡软件层面的改进检测逻辑的改进算法层面改进深度学习模型训练,推理,量化的优化外网参考参考文献简介 为什么要在制造业节能减排 一、制造业…...

电脑文件msvcp110.d丢失的解决方法

电脑运行故障全解析&#xff1a;从文件丢失到系统报错&#xff0c;打造无忧使用环境 在数字化浪潮中&#xff0c;电脑作为我们工作、学习和娱乐的得力助手&#xff0c;其稳定运行至关重要。然而&#xff0c;在实际使用过程中&#xff0c;我们难免会遇到各种各样的问题&#xf…...

xdoj isbn号码

ISBN 号码 问题描述 每一本正式出版的图书都有一个 ISBN 号码与之对应&#xff0c;ISBN 码包括 9 位数字、1 位识别码和 3 位分隔符&#xff0c;其规定格式如"x-xxx-xxxxx-x"&#xff0c; 其中符号“-”是分隔符&#xff08;键盘上的减号&#xff09;&#xff0c;最…...

qt的utc时间转本地时间

代码如下: #include <QCoreApplication> #include <QDateTime> #include <QDebug>int main(int argc...

mariadb变更数据存放目录

1、停止mariadb服务 # systemctl stop maraidb.server 2、创建数据目录 # mkdir /opt/mysql # chown -R mysql:mysql /opt/mysql 3、配置mariadb 3.1 配置文件说明 # cd /etc/mysql/ && ls -l my.cnf为主配置文件&#xff0c;其他的为子配置&#xff0c;同时配置…...

分布式专题(11)之Zookeeper特性与节点数据类型详解

一、Zookeeper数据结构 Zookeeper数据模型与结构与Unix文件系统很类似&#xff0c;整体上可以看做是一棵树&#xff0c;每个节点称做一个ZNode。 Zookeeper的数据模型是层次模型&#xff0c;层次模型常见于文件系统 。层次模型和Key-Value模型是两种主流的数据模型&#xff0c;…...

Java项目实战II基于小程序的驾校管理系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着汽车保有量的不断增长&#xff0c;驾驶培训市场日…...

Unity Pico 应用失去焦点后,追踪功能被禁用(原生 UI 界面弹出)

在 Unity 中&#xff0c;如果正在使用新的输入系统&#xff0c;任何触发 OnApplicationFocus(false) 的事件都可能会禁用追踪功能。 负责此功能的组件是附加到主摄像机的 "Tracked Pose Driver (Input System)" 组件。由于非输入系统版本不是新输入系统的一部分&…...

第十四届蓝桥杯Scratch省赛中级组—智能计价器

智能计价器 背景信息&#xff1a; A城市的出租车计价&#xff1a;3公里以内13元&#xff0c;基本单价每公里2.3元(超过3公里的部分&#xff0c;不满1公里按照1公里收费&#xff09;&#xff0c;燃油附加费每运次1元。 例如&#xff1a; 3.2公里的打车费用&#xff1a;132.3…...