阅读笔记---城市计算中用于预测学习的时空图神经网络研究综述
摘要
随着近年来传感技术的进步,智能城市产生并记录了无数的时空数据。预测时空数据的演变模式是城市计算的一个重要而又苛刻的方面,它可以增强各个领域的智能管理决策,包括交通、环境、气候、公共安全、医疗保健等。传统的统计和深度学习方法难以捕捉城市时空数据中的复杂相关性。为此,近年来提出了时空图神经网络(STGNN),并取得了很大的发展前景。stgnn通过集成图神经网络(gnn)和各种时间学习方法,实现了复杂时空依赖关系的提取。在本文中,我们对城市计算中用于预测学习的STGNN技术的最新进展进行了全面的调查。首先,我们简要介绍了时空图数据的构建方法和stgnn中常用的深度学习架构。然后,我们根据现有文献整理出主要的应用领域和具体的预测学习任务。随后,我们详细分析了近年来stgnn的设计及其与一些先进技术的结合。最后,我们总结了现有研究的局限性,并提出了未来工作的潜在方向。
1.介绍
我们的贡献。与以往的调查相比,本次调查的贡献体现在四个方面:
1.据我们所知,这是第一个系统地回顾最近在城市计算中使用stgnn进行预测学习的研究的综合调查。在大量文献的基础上,我们从应用和方法两个角度审视了STGNN的进展。
2.我们对stgnn在城市计算中的主要应用领域以及特定的预测学习任务进行了分类,并整理了所附的公共数据集列表与之前关于stgnn的工作。
3.我们深入分析了现有的时间学习、空间学习和时空融合的STGNN方法。我们进一步研究了一些最近出现的将STGNN与其他高级学习框架集成在一起的方法。
4.我们总结了stgnn在城市计算预测学习任务中所面临的挑战,并提出了解决这些挑战的未来方向。
2.时空图构建
一般来说,城市计算系统中预定义时空图的构造方法可以可分为四类:基于拓扑、基于距离、基于相似度和基于交互。
基于拓扑的图:在城市系统的背景下,基于拓扑的图通常是基于给定的拓扑结构构建的,如道路网络。
基于距离的图:在没有预定义拓扑的情况下,我们可以构造基于距离的图。
基于相似度的图:相似度可以从语义中洞察不同实体之间的关系抽搐的视角。基于相似度的图可以基于时间序列的接近度或空间属性的相似性来构建,例如,兴趣点(POI)[25]。在没有其他数据的情况下,基于相似度的图通常基于时间序列的相似度构建。皮尔逊相关系数(PCC)和动态时间包裹(DTW)是计算时间序列相似性的两种常用方法。
基于交互的图:不同位置之间的交互可以从信息流的角度来表达它们之间的联系。这在表示移动性特征时尤其重要,因为两个节点之间的流量比例可以表明它们连接的强度。
3.方法分类
本节提供了用于城市计算预测学习的stgnn的分类,这也是我们后续内容的概括。如图3所示,我们的调查主要有四个部分需要重点强调:主要应用领域、基本时空学习神经架构、改进的时空学习方法和与stgnn结合的高级方法。
4.应用领域
交通运输:交通需求预测、交通意外预测、旅游时间预测、轨迹预测
环境:空气质量预测、气象预报
公共安全:犯罪频率预测、灾情预测
公共卫生:流行病预测、救护车需求预测
其他应用领域:能源、经济、金融、生产等其他领域
数据集资源如下
5.stgnn的基本神经结构
用于预测学习的stgnn的基本框架包含三个主要模块:数据处理模块(DPM)、时空图学习模块(STGLM)和任务感知预测模块(TPM)。
5.1Graph Neural Networks
图神经网络(gnn)是学习非欧几里得空间中空间依赖关系的有效工具。近年来流行的GNNs可分为三类:频谱gns、空间gns和GATs。
5.1.1谱图卷积网络
最初,大多数gnn都是基于傅里叶变换,将空间域的图信号转换为谱域进行卷积计算。例如,ChebNet是最流行的谱GNN方法之一。
5.1.2空间图卷积网络
虽然谱图卷积网络已经取得了重大进展,但其主要局限性在于对图拉普拉斯矩阵的依赖。每当底层图结构发生变化时,必须重新计算图拉普拉斯矩阵,使谱GCNs更适合图结构保持不变的场景。为了克服对图拉普拉斯矩阵的依赖,Kipf等人通过在空间域中执行消息传递来简化图卷积操作。我们将这种新形式称为空间GCNs。
5.1.3 图注意网络
考虑到邻居节点的重要性在学习空间依赖性,GAT将注意力机制集成到该节点聚合操作。
5.2递归神经网络
递归神经网络(rnn)是一类基于递归计算的序列学习深度神经网络,在时间序列建模中有着广泛的应用。然而,普通版本的rnn有一个明显的限制——训练过程中的梯度消失或爆炸问题。为了应对这一挑战,人们提出了两种最突出的rnn变体,即长短期记忆(LSTM)[148]和门控循环单元(GRU)[149]。到目前为止,GRU是使用最广泛的变体,因为它兼顾了高性能和低计算复杂度。
5.3时间卷积网络
rnn已广泛应用于许多时空任务的时间学习,但其缺点很明显:循环结构需要在每个时间步上计算序列,导致计算成本大幅增加,从而导致模型效率下降。相比之下,具有并行1D-CNN结构的时间卷积网络(TCN)可以有效地解决这一问题。
5.3.1GatedTemporal卷积网络
受lstm和gru中的门控机制的启发,我们也可以将其与纯1D-CNN架构相结合,以增强时间学习的能力。我们将这种混合神经结构称为门控时间卷积网络(gate - tcn)。
5.3.2因果时间卷积网络
虽然TCN是一种高效的并行神经网络结构,但它违背了时空图数据的时间顺序。与标准tcn相比,在Wavenet中提出的因果tcn提供了明确建模时间数据因果性质的额外好处。
5.4时间自注意网络
自关注网络代表了一种捕获不同时间步长之间长期时间关系的高效方法,最突出的例子是Transformer模型。
5.5时空融合神经网络架构
除了空间学习网络和时间学习网络之外,时空融合神经结构代表了另一个关键领域,因为它决定了如何将空间学习网络和时间学习网络集成到完整的STGNN中。现有的融合神经结构可分为分解神经结构和耦合神经结构两大类。
5.5.1分解神经结构
在因式神经结构中,空间学习网络和时间学习网络像积木一样逐层并行或串行堆叠。在STGNN模型中有两个典型的分解神经架构的例子,分别如图6和图7所示。第一个例子是STGCN,它的时态学习网络是TCN。在STGCN的每个ST-Conv块中,两个tcn和一个GCN串联堆叠,形成三明治结构。
第二个是T-GCN,它利用gru进行时间学习。该模型以递归的方式捕获时空依赖关系。对于每个时间步,图形信号分别由GCN和GRU进行顺序处理,分别学习时空依赖关系。
5.5.2耦合神经结构
在耦合神经网络体系结构中,空间学习网络通常作为嵌入式组件集成到时间学习网络体系结构中。在STGNN中,这种类型的神经结构几乎只出现在基于gnn的空间学习网络和基于rnn的时间学习网络的组合中。stgnn中耦合神经体系结构的一个例子是DCRNN[28],它将GCN集成到GRU体系结构中,如图所示。
6.STGNN变体
然而,近年来,有许多创新的方法被设计来提高时空依赖性的学习。在本节中,我们详细介绍了一些先进的STGNN变体,它们可以更好地捕获城市计算中预测学习的时空依赖性。
6.1空间学习方法
6.1.1多图卷积
在城市系统中,往往存在多种类型的空间关系同时存在。例如,在运输系统中,相邻区域和具有类似poi的区域可能表现出类似的交通模式。因此,联合考虑多个空间关系是STGNN进行时空学习的必要条件。近年来,提出了一系列集成多图卷积的STGNN变体。其中,STMGCN是城市网约车需求预测的典型模型,如图所示。该模型首先基于邻域、函数相似度和连通性构建多图来表征多个空间相关性。对于每个图,分别采用上下文门控RNN和ChebNet来捕获时间和空间依赖关系。最后,通过融合并行化的多图时空隐藏信息,得到最终的预测结果。
6.1.2自适应图学习
根据现有文献,STGNN中的自适应图学习方法大致可以分为两大类:基于随机初始化的方法和基于特征初始化的方法。基于随机初始化的方法通过随机初始化的可学习矩阵来进行自适应图结构学习。该类别中两个突出的模型是Graph WaveNet和MTGNN,它们已经得到了广泛的应用或改进在随后的作品中。基于特征初始化的方法旨在基于给定输入或隐藏状态构建自适应图结构学习,。这些模型通常采用可学习矩阵或注意机制结合给定的特征生成自适应图结构。例如,DGCRN提出了一种基于隐藏状态的循环自适应图学习机制来构建每个时间步长的图结构。GTS提出了一种基于输入特征的概率图结构学习方法。
6.1.3多尺度空间学习
由于城市系统中广泛存在空间异质性,实体可以被划分为具有不同功能的社区。同一社区中的实体可能具有社区间相关性,而不同社区中的实体也可能具有跨社区相关性。鉴于此,近年来已有一些基于社区划分的多尺度空间学习研究方法。这些方法通常利用领域知识来指导社区划分过程。
6.1.4异构空间学习
如引言部分所述,异质性是智慧城市时空数据的基本属性,它在不同的时间或空间范围内表现出不同的模式。与上述多尺度空间学习方法不同,一些研究侧重于时空数据中细粒度的节点间异构关系。为了区分时空图中静态无向边(如基于距离的边)和动态有向边(如车辆机动引起的边)的影响,HMGCN在空间维度上进行了异构聚集。
6.2时态学习方法
6.2.1多尺度时态学习
鉴于在时空数据中普遍存在的短期和长期相关性,捕获多尺度时间相关性已成为改善时间学习的一个重要方向。目前,stgnn中多尺度时间学习的主流设计方向有两种。第一个方向使用具有不同规模接受野的tcn。一个典型的例子是MTGNN,它使用多个具有不同核大小的tcn来学习不同尺度的时间依赖性。第二个方向涉及整合其他时间学习网络。例如,DMVST-VGNN联合利用tcn和transformer进行长-短距离时间学习。
6.2.2多粒度时态学习
时空数据具有多种类型的时间特征。例如,给定时间的交通流量不仅与最近的交通流量有关,而且可能与前一天甚至前一周同一时间的交通流量具有相似性。这分别反映了二者的密切性、周期性和趋势性。为了考虑这三个粒度的时间特征,许多先前的研究采用了三分支架构,分别从不同的时间粒度学习特征,然后融合学习到的隐藏状态进行预测。如图所示ASTGCN采用了典型的三分支架构进行多粒度时间学习,其中Xh、Xd、xw分别代表最近一小时的时空数据、前一天同一小时的数据和前一周同一小时的数据。经过不同的分支,最后通过可学习权矩阵进行融合。
6.2.3分解时态学习
单个时间模式通常包含各种隐藏成分,如固有成分、扩散成分和周期成分。为了更好地捕获这些复杂的时间依赖性,已经提出了基于分解的时间学习方法,该方法可以通过特殊的神经设计自动分解和整合不同的时间成分。FC-GAGA是采用N-BEATS的减差残差对交通数据中不同成分进行分解,并对各成分的空间相关性进行建模的分解方法的一个值得注意的例子。
6.3时空融合方法
6.3.1时空关节建模
在第5.5节中,我们讨论了stgnn的基本时空融合架构,该架构由空间学习网络和时间学习网络分解或耦合。尽管这些体系结构可以有效地分别学习空间和时间依赖关系,但它们缺乏对联合时空依赖关系进行建模的能力,这使得跨越不同时间步长捕获复杂的时空关系具有挑战性。近年来,一些文献侧重于基于三维GCN的时空依赖关系联合建模;时空联合GCN (STJGCN)和时空同步GCN (STSGCN)。其中,STSGCN已成为时空依赖项联合融合的主流方法。这种神经网络结构能够将时空依赖关系建模为统一的图结构,从而取代分离的空间学习网络和时间学习网络。STSGNN的关键部分是构建时空同步图。原始的时空同步图比较简单,具有相同位置的节点在相邻的时间步长上相互连接。这种图的构造方法不仅刻画了空间邻居,而且刻画了时间邻居,建立了统一的时空关系。图构建完成后,STSGNN采用简单的GCN模型捕获时空依赖关系。
6.3.2自动化时空融合
考虑到stgnn的复杂性,设计最优的神经结构可能是一项具有挑战性的任务。现有的时空融合方法通常是经验设计的,由于不同场景中存在不同的时空属性,可能不能很好地泛化到不同的数据场景。神经架构搜索方法为stgnn中的自动时空融合提供了机会,并在发现各种应用的最佳架构方面显示出有希望的结果。AutoSTG首次尝试将dart(即最经典的基于梯度的NAS方法)纳入STGNN。在AutoSTG中,整个神经网络被分成不同的堆叠单元,这些单元是执行NAS的基本单元。
7 先进学习框架
近年来,越来越多的高级学习框架被开发出来,以提高STGNN在深度表示和预测精度方面的性能。在本节中,我们将回顾和讨论一些与stgnn相结合的典型高级学习框架。
7.1对抗性学习
由于传统的损失函数,如L1和L2范数,通常用于测量预测误差,它们可能缺乏捕捉预测与实际数据之间分布和相关性的能力。这一限制可能会导致预测结果失真。因此,可以引入对抗损失与传统损失相结合,在一定程度上解决了这一问题,并在时间序列预测中得到了广泛应用。为了考虑对抗损失,我们提出了生成式对抗网络(GANs),其中神经预测器作为生成器,判别器的神经结构单独设计。我们已经见证了大量的工作将对抗损失与stgnn结合起来用于预测学习任务。
7.2元学习
元学习是一种以“学会学习”为核心的高级学习范式。在STGNN模型中结合元学习技术是很重要的,因为它们可以从原始数据中捕获高维异质性和动态时空依赖性,并且教它们如何学习可以显着提高它们的预测性能。通常,基于元学习的stgnn涉及通过元学习器提取额外的时空属性。STMetaNet是将元学习引入stgnn的开创性研究,它由RNN、meta- gat和meta- RNN组成,并利用两种元知识学习器,即节点元知识(NMK)和边缘元知识(EMK)学习器,有效地吸收额外的时空信息。鉴于ST-MetaNet的成功,已经提出了一些其他包含元学习的STGNN模型。
7.3自监督学习
自监督学习是一种通过构造自己的标签将无监督学习任务转化为有监督学习任务的方法。这种学习范式的目标是为下游监督任务学习更好的表示。通过使用自监督学习,可以学习到具有较强泛化性能的表示。将STGNN模型与自监督学习相结合可以增强时空图学习能力,从而提高下游预测学习任务的准确性。对比学习是近年来引入STGNN模型的一种重要的通过构造正、负样本实现的自监督学习方法。一个值得注意的例子是STGCL,它是由Liu等人引入的,是第一个将对比学习纳入STGNN架构的工作。如图所示,STGCL的第一步是数据增强,构建正样本和负样本,其中正样本和负样本是使用边缘屏蔽、输入屏蔽和时间移位等技术构建的。在获得正样本和负样本后,使用相同的STG编码器学习原始数据和增强数据的时空图表示。然后,STGCL分成两个分支——预测分支和对比分支。在预测分支中,STG解码器直接输出预测结果,传统的数据点误差,如平均绝对误差(MAE)可以作为损失函数。在对比分支中,将H ‘和H “两种类型的表征引入到投影头部中,进一步得到潜在表征z ’和z ”。对于两种潜在表示,本案例采用GraphCL中提出的对比损失,在STGCL的基础上,近年来还提出了其他几种对比学习方法来增强STGNN的学习能力。例如,SPGCL提出通过最大化正负之间的区分界限来学习信息关系生成最优图结构的邻居。STSSL提出了一种在属性和结构两个层次上对时空图数据进行自适应增强的方法。START提出了一种基于时空图的轨迹表示学习对比学习方法。该模型提出了多种负轨迹构建方法,如轨迹修剪和路段掩模,以帮助STGNN模型在行程时间预测任务中获得更好的性能。
7.4连续时空建模
大多数现有的基于stgnn的方法以离散的方式捕获空间和时间依赖性,导致不连续的潜在状态轨迹和更高的预测误差。为了解决这一问题,一些研究集中在连续时空建模上。受连续系统建模的著名方法Neural Ordinary Differential Equation (NeuralODE)的成功启发,stgnn结合Neural- ode可以连续提高时空图表示学习的能力。STGODE是将Neural-ODE引入stgnn的第一次尝试,然而,它只考虑将Neural-ODE与GCN集成,而忽略了对时间模式的连续建模。为了实现对时空依赖关系的联合连续建模,MTGODE引入了Neural-ODE与图卷积算子和时间卷积算子的集成,以实现连续的时空编码。此外,MixRNN[209]结合了Neural-ODE和RNN进行连续递归隐藏状态建模。与基于neural - ode的方法相比,STG-NCDE[210]开发了一种结合神经控制微分方程(neural - cde)的STGNN,以获得更好的连续建模。除了流行病预测任务外,在其他领域也有一些工作。例如,STDEN[27]提出了交通势能场微分方程与神经网络相结合的交通流预测统一框架。
7.5物理知识学习
在过去的几年中,一种称为物理形成的神经网络(pinn)的新范式已经出现,用于探索和计算现实世界的动态,将物理微分方程和具有强大拟合能力的神经网络集成在一起。pinn的主要优点是它们能够对预测施加物理约束,从而确保模型的输出与物理定律一致。受到pinn的启发基于简单的神经网络,物理信息学习方法也可以与stgnn相结合,特别是在流行病预测任务中。如图13所示,STAN首先将SIR微分方程的约束集成到STGNN架构中。该模型分别利用GAT和GRU捕获空间和时间依赖关系,并进行多任务预测。该模型的输出有四个组成部分:传播率β、恢复率γ、时变感染数∆I和恢复率∆R。根据SIR方程,这些组件需要满足物理约束。
7.6迁移学习
由于一些时空图数据的稀缺性,迁移学习技术已经成为将相同的基本STGNN模型扩展到不同数据场景的一种经济有效的方法。然而,对stgnn进行迁移学习有两个主要的限制。一是空间结构的异质性,二是不同环境下时间格局的异质性。具体来说,在不同的场景下,空间拓扑、关系等都是完全不同的,在时间上的周期性、趋势性等模式也是完全不同的。现有关于时空图迁移学习的文献大致可分为三类:基于聚类的,基于领域适应的和基于元学习的。例如,TL-DCRNN提出了一种图划分方法,将整个公路网划分为不同的子簇,然后利用DCRNN模型学习源子簇到目标子簇的时空依赖关系。DASTNet[215]将图表示学习与多域对抗自适应方法相结合,获得域不变的节点嵌入,实现了不同空间结构的不同场景之间的知识转移。
8 .挑战与未来方向
我们研究了STGNN在城市计算预测学习中的应用、基本神经结构和最新进展。尽管近年来STGNN模型取得了显著的成绩,但仍存在一些具有挑战性的问题需要解决,这些问题指出了未来潜在的研究方向。我们总结了这些挑战,并提出了潜在可行的研究方向:
缺乏可解释性:到目前为止,绝大多数与stgnn相关的工作都集中在通过复杂的模型设计来提高预测性能。然而,关于模型可解释性的研究相对缺乏,即我们不能清楚地了解哪些时空特征在提高预测性能方面起主导作用。STNSCM在最近的工作中提出构建因果图来描述自行车流量预测,并分析时空特征与预测结果之间的因果关系。除了空间视角外,一些深度时间序列模型还结合了统计建模技术来增强数据的可操作性对预测结果的理解。因此,从空间和时间的角度构建可解释的STGNN模型是一个潜在的方向。
缺乏校准方法:如何在一线城市管理者之间建立对stgnn预测能力的信任是一个需要进一步探索的现实问题。因此,需要强调能够反映预测结果可信度的不确定性量化的重要性。为了提高深度模型的可信度,需要适当的模型校准方法,近年来,模型校准方法在图像识别和图表示学习中得到了广泛的应用。目前仅有文献对STGNN模型的不确定性进行了研究,缺乏对标定方法的研究。STGNN模型的定标需要同时考虑时空特征,比以往的相关工作更具挑战性。
缺乏物理约束:大多数STGNN模型通过对深度神经网络的集成来捕捉复杂的时空依赖关系,而忽略了对不同应用领域物理约束的考虑,使得该模型在一些专业领域的认知度较低。近年来,虽然一些用于流行病预测的STGNN模型结合了专业的微分方程作为物理约束,但在其他应用领域,这方面的工作仍然不足,需要进一步完善。
缺乏预训练技术:近年来,预训练技术在时间序列和图表示学习领域得到了很大的发展,但在stgnn相关工作中相对缺乏。在最近的工作中,STEP[223]提出了一种与Mask Auto-Encoder (MAE)架构相结合的预训练模型,以有效地从非常长期的历史时空图数据中学习时间模式。在未来,远程空间学习和长期时间学习的预训练技术是必要的,这对STGNN模型的可扩展性和可部署性具有重要价值。
缺乏细粒度的NAS:由于stgnn的组成相对复杂,自动设计有效可靠的神经结构是一项紧迫的任务。虽然已有一些研究]提出了NAS和stgnn的集成,但大多数都局限于粗尺度,缺乏对GNN中细粒度架构(如聚合方法,激活函数等)的搜索。因此,受目前一些最先进的gnn NAS方法的启发,为stgnn提出高效的细粒度NAS是一个很有前途的方向。
分布偏移的障碍:时空数据通常来自不同的地点和时间段,导致训练集、验证集和测试集的分布存在显著差异。例如,我们将北京空气质量数据集的时间分布可视化。如图所示,训练数据(周期A和B)和测试数据来自不同的分布,即PA(x) = PB(x) = Ptest(x)。这可能对stgnn构成挑战,因为在一个数据集上训练模型。由于分布变化,可能在验证和测试集上不能很好地执行,这类似于域适应中的分布变化问题(其中输入和输出的联合分布在训练和测试阶段之间不同)。尽管这一问题很重要,但在时空研究界却很少受到关注。虽然有几项研究调查了时间序列中的分布变化,但它们未能对地点之间的空间相关性进行编码。
探索新的训练策略:以前的研究主要集中在引入具有复杂层或模块的新型stgnn,以增强人类流动性分析。然而,另一个有希望的方向是研究新的训练策略。例如,在交通预测任务中,每个位置都被平等对待,属于这些位置的数据被联合馈送到神经网络中。然而,每个地点的时空相关性建模的复杂性可能会有很大差异,这就需要一种新的训练策略,如课程学习。课程学习从简单的数据开始,在越来越难的数据上训练机器学习模型,可能有效地解决这个问题。
可扩展性问题:设计高效stgnn的一个特别具有挑战性的情况是当传感器网络中的位置数量非常大时。例如,在PEMS系统中有超过一万个环路检测器。在这种情况下,需要开发能够高效处理和分析网络产生的大量时空数据,同时保持较高预测精度的stgnn。在这种情况下,需要更高效的AI解决方案,例如通过模型修剪/蒸馏、图采样技术或高效探索下一代AI模型。也有一些研究探讨了无图方法,以减少大规模传感器网络扩展时的计算成本。此外,时间序列预测研究的一些进展也挑战了使用过于复杂的时间学习模型的必要性。因此,降低空间和时间计算复杂度,提高stgnn的可扩展性是一个很有前途的方向。
9 结论
在本文中,我们提出了时空图神经网络(stgnn)的预测系统的调查学习城市计算。本文从时空图数据的基本形式和构建方法入手,总结了城市计算中不同应用领域涉及stgnn的预测学习任务。接下来,我们深入研究了支撑stgnn的基本神经网络架构,包括空间学习网络和时间学习网络,它们由图神经网络(gnn)、递归神经网络(rnn)、时间卷积网络(tcn)和自关注网络(SANs)组成,并探索了用于整合这些时空神经网络架构的基本融合技术。为了跟上stgnn的最新发展,我们回顾了最近一些值得注意的工作,重点是空间学习方法、时间学习方法、时空融合方法和其他可以结合的先进技术。最后,我们总结了当前研究面临的挑战,并提出了一些潜在的研究方向。
相关文章:
阅读笔记---城市计算中用于预测学习的时空图神经网络研究综述
摘要 随着近年来传感技术的进步,智能城市产生并记录了无数的时空数据。预测时空数据的演变模式是城市计算的一个重要而又苛刻的方面,它可以增强各个领域的智能管理决策,包括交通、环境、气候、公共安全、医疗保健等。传统的统计和深度学习方…...
SpringBootDay1|面试题
目录 一、springboot框架 1、什么是springboot 2、Spring Boot的主要优点 3、springboot核心注解 4、定义banner(springboot的logo) 5、springboot配置文件 6、springboot 整合 jdbc 二、面试题 1)springmvc的作用 编辑 2&#x…...
PyCharm2025的字体的设置
前言 Pycharm中的字体调节,看起来似乎无足轻重。但是,能从容的调节,也是蛮好的,特别是做程序演示的时候。 当前PyCharm采用的是最新的2025.1.1版本(Community),当前的操作系统是Windows。 一、初始状态 …...
【Linux】进程间通信(三):命名管道
📝前言: 这篇文章我们来讲讲Linux 进程间通信(三)——命名管道 🎬个人简介:努力学习ing 📋个人专栏:Linux 🎀CSDN主页 愚润求学 🌄其他专栏:C学习…...
人工智能+:职业技能培训的元命题与能力重构
当“人工智能”成为各行各业的热门命题时,我们似乎跳过了一个更根本的思考:人类究竟需要怎样的AI能力?这个问题不解决,任何技术赋能都可能沦为无本之木。真正的挑战不在于如何应用AI,而在于如何定义人与AI的能力边界—…...
HarmonyOS5云服务技术分享--云存储SDK文章整理
在HarmonyOS ArkTS应用中集成华为云存储SDK指南 大家好呀!今天咱们来聊聊如何将华为云存储SDK集成到基于ArkTS(API 9-11)的HarmonyOS应用中。这篇指南会手把手带你完成从环境准备到代码实现的完整流程,过程中遇到的常见问题也会贴…...
《财务自由之路Ⅱ》理论篇
欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 欢迎评论交流,感谢您的阅读😄。 目录 引言认知赚钱方式收入与负债都很重要整天工作的人,没有时间赚钱 一些建议做法…...
AI筑基,新质跃升|英码科技亮相华为广东新质生产力创新峰会,发布大模型一体机新品,助力产业智能化转型
5月15日,以“AI筑基,新质跃升”为主题的华为中国行2025广东新质生产力创新峰会在惠州圆满召开。本次峰会聚焦人工智能、算力基础设施等新ICT技术如何驱动“新质生产力”,共探广东高质量发展新路径。英码科技受邀出席本次峰会,并携…...
【C++】C++的拷贝构造函数介绍使用
拷贝构造函数 1.作用示例代码1:拷贝构造函数的调用示例代码2:系统默认的拷贝构造做的事情示例代码3:写法1-4示例代码4:写法5示例代码5:C编译器默认给类提供了4中隐含的方法 2.语法规则示例代码: 3.深拷贝和…...
能管理MySQL、Oracle、达梦数据库的桌面管理软件开源了
能管理MySQL、Oracle、达梦数据库的桌面管理软件开源了 能管理MySQL、Oracle、达梦数据库的桌面管理软件开源了1.项目介绍2. 项目源码开发2.1克隆项目2.2 配置并运行 3.使用3.1添加数据库连接3.2新增表3.3操作表3.4 运行sql 4.总结 能管理MySQL、Oracle、达梦数据库的桌面管理…...
5.20打卡
浙大疏锦行 DAY 31 文件的规范拆分和写法 知识点回顾 1. 规范的文件命名 2. 规范的文件夹管理 3. 机器学习项目的拆分 4. 编码格式和类型注解 作业:尝试针对之前的心脏病项目,准备拆分的项目文件,思考下哪些部分可以未来复用。 预处理&am…...
unity XCharts插件生成曲线图在UICanvas中
【推荐100个unity插件之22】基于UGUI的功能强大的简单易用的Unity数据可视化图表插件——XCharts3.0插件的使用_unity xcharts-CSDN博客...
创建thinkphp项目并配置数据库
配置环境并引入UI ssr模式 使用 composer 命令在指定的目录安装 Thinkphp6.x composer create-project topthink/think tp6demo出现Fatal error: Directive ‘track_errors’ is no longer available in PHP in Unknown on line 0说明你的php版本较高,在php.ini中…...
头歌实践平台:动态NAT配置
第一:打开GNS3,创建名为nat的项目文件 第二:创建网络拓扑结构如下: note:s端口线需要在关闭路由器的情况下双击进入,选配4T端口(不要忘记点击OK) 第三:打开所有设备(所…...
贝叶斯优化+CNN+LSTM=小论文创新点
2周速成小论文可能吗?有点悬,但有可能。今天我就给论文er推荐一个高潜力、易创新、适合速发的小论文选题:贝叶斯优化CNNLSTM! 这种“三结合”的优势在于技术成熟度高(经典CNN和LSTM)、创新点灵活性强&…...
软考中级软件设计师——计算机网络 IP地址与子网掩码相关题型
一、常见题型分类 题型考查重点解题关键子网划分根据需求划分子网,计算网络地址、广播地址、可用主机范围等二进制与十进制转换,子网掩码计算,网络位与主机位划分子网掩码转换CIDR表示法(如/24)与点分十进制ÿ…...
bi报表是什么意思?如何制作一张bi报表?
目录 一、BI 报表是什么意思? 1. BI 报表的基本概念 2. BI 报表的特点 3. BI 报表的作用 二、制作 BI 报表的前期准备 1. 明确报表的目标和需求 2. 确定数据来源 3. 选择合适的 BI 工具 三、制作 BI 报表的具体步骤 1. 数据收集与整理 2. 数据分析 3. 可…...
vivado fpga程序固化
一般下载到fpga上的程序在掉电之后就会丢失,如果想要掉电之后程序不丢失,就需要将比特流文件固化到板载的flash上。 以下以我的7a100t开发板为例,介绍程序固化的流程 点击OK就可以下载了。...
人生的真谛杂谈
文章目录 自我的哲学奠基自我存在的真实性身体与思想的决定关系自由意志自我的当代解构 三观的意义系统构建世界观:认知世界的根基人生观:生命意义的探索价值观:行为选择的准则三观构建的终极目标 价值的哲学解构价值的本体论价值客观性的形而…...
【Java】继承和多态在 Java 中是怎样实现的?
extends 关键字 class 子类 extends 父类 {... } // 类继承是单继承父类的哪些成员被继承 ? 访问修饰符 public 和 protected 修饰的父类成员字段和成员方法可以被继承 , 父类的默认方法只能在同包下继承 , 父类的 private 成员和构造方法不可继承 . super 关键字 表示父类…...
输出字母在字符串中位置索引
输入一个字符串,再输入两个字符,求这两个字符在字符串中的索引。 输入格式: 第一行输入字符串 第二行输入两个字符,用空格分开。 输出格式: 从右向左输出字符和索引,即下标最大的字符最先输出。每行一个。 输入样例: 在这里…...
Oracle中如何解决LATCH:CACHE BUFFERS LRU CHAIN
简单来讲,Oracle为了高效管理BUFFER CACHE主要使用以下2种LRU列: LRU列,又叫替换列(replacement list),其中又分为主列和辅助列。 主列:已使用的缓冲区列,分为HOT和COLD区域。HOT区…...
FPGA:基于Vivado的仿真流程与波形调试实践
在FPGA开发过程中,仿真是验证设计逻辑正确性的关键环节。尤其在复杂系统中,单靠硬件板级调试远远不够,往往需要依赖仿真工具提前发现潜在问题,提升开发效率。本文将结合Xilinx Vivado设计套件,系统梳理从仿真环境构建到…...
前端流行框架Vue3教程:20. 插槽slot(2)
插槽slot(2) 渲染作用域 插槽内容可以访问到父组件的数据作用域,因为插槽内容本身是在父组件模板中定义的 SlotsTow.vue <script> export default {data() {return {};} } </script><template><h3>Slots续集</…...
CodeBuddy全新升级:体验Craft智能体的对话式编程革命
本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 腾讯云AI编程助手官网:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 目录 引言:软件开发的新范式 一、Craft智能体核心功能解析 1.1 自然语…...
基于SpringBoot+Vue的学籍管理系统的设计与实现
获取源码:SpringBootVue的学籍管理系统: 学籍管理系统:登录、个人中心、学生管理、教师管理、学院管理、专业管理、班级信息管理、课程信息管理、学生成绩管理、学生学籍管理、招生信息录入等功能 系统演示视频地址:SpringBootVue的学籍管理…...
【动态规划】P10988 [蓝桥杯 2023 国 Python A] 走方格|普及+
本文涉及知识点 C动态规划 P10988 [蓝桥杯 2023 国 Python A] 走方格 题目描述 给定一个 N N N 行 N N N 列的方格,第 i i i 行第 j j j 列的方格坐标为 ( i , j ) (i, j) (i,j),高度为 H i , j H_{i,j} Hi,j。小蓝从左上角坐标 ( 0 , 0 ) …...
pycharm无法正常调试问题
pycharm无法正常调试问题 1.错误代码 已连接到 pydev 调试器(内部版本号 231.8109.197)Traceback (most recent call last):File "E:\Python\pycharm\PyCharm 2023.1\plugins\python\helpers\pydev\_pydevd_bundle\pydevd_comm.py", line 304, in _on_runr r.deco…...
自学嵌入式 day21 - 数据结构 双向链表
1.双向链表 2.基础操作 (1)头部插入 int InsertHeadDouLinkList(DouLinkList *dl,DATATYPE *data) { DouLinkNode *newnode (DouLinkNode *)malloc(sizeof(DouLinkNode));//定义新节点来存储需插入的数据 if(NULL newnode)//判断结点空间…...
Ubuntu 22.04安装zabbix7.0.0图形中文乱码
在 Ubuntu 22.04 上安装 Zabbix 7.0.0 时,如果图形界面(如仪表盘、图表)出现中文乱码,通常是因为缺少中文字体或字体配置不正确。以下是完整的解决方案: 1. 安装中文字体 安装 fonts-wqy-microhei(文泉驿微…...
docker环境和dockerfile制作
docker 一、环境和安装 1、 docker安装 使用 root 权限登录 CentOS。确保 yum 包更新到最新sudo yum update卸载旧版本yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux …...
《经济日报》深度聚焦|珈和科技携手万果博览荟共筑智慧农业新示范高地 全链赋能蒲江茶果产业数字化转型升级
近日,《经济日报》深度聚焦报道了《珈和科技携手万果博览荟打造智慧农业新示范 双轮驱动绘就西南农业全链发展新篇章》。 作为国家级重点财经新闻媒体,《经济日报》对珈和科技与蒲江县人民政府战略合作签约,成立四川珈和科技子公司落地万果博…...
科技赋能·长效治理|无忧树建筑修缮渗漏水长效治理交流会圆满举行!
聚焦行业痛点,共话长效未来!5月16日,由无忧树主办的主题为“科技赋能长效治理”的建筑修缮渗漏水长效治理技术交流会在上海圆满举行。来自全国的建筑企业代表、专家学者、技术精英齐聚一堂,共探渗漏治理前沿技术,见证科…...
文章记单词 | 第100篇(六级)
一,单词释义 immediate /ɪˈmiːdiət/ adj. 立即的;直接的;紧迫的hypothesis /haɪˈpɑːθəsɪs/ n. 假设;假说(复数:hypotheses)disregard /ˌdɪsrɪˈɡɑːrd/ v./n. 忽视;…...
React表单开发的瑞士军刀:Formik与Yup实战指南
——揭秘高效表单开发的黄金公式 开篇:一场关于效率的革命 2023年某日凌晨,某互联网大厂会议室灯火通明。前端团队正为表单校验逻辑争论不休: “每次写表单都要重复处理触碰状态、错误消息、异步验证…” “受控组件状态管理太繁琐…...
瑞莎星睿 O6 (Radxa Orion O6)-ubuntu24.04-ROS2 运行深度估计模型
引言 由Radxa联合此芯科技与安谋科技打造的"星睿O6"迷你ITX主板堪称当前最受期待的开发板之一。该产品搭载的CIX P1(CD8180)12核Armv9处理器配合30TOPS算力的NPU和高性能GPU,结合最高64GB LPDDR内存,非常适合AI开发工作…...
【ubuntu】虚拟机连不上网,且网络中没有有线连接
错误图示 sudo gedit /etc/NetworkManager/NetworkManager.conf managedtruesudo gedit /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf 添加except:type:ethernet,然后重启 sudo service network-manager stop sudo rm /var/lib/NetworkManager/Networ…...
Ubuntu软件仓库与更新源配置指南
一、软件仓库基础知识 软件仓库的作用 Ubuntu 通过预设的软件仓库(Repository)提供软件包,包含系统核心组件、第三方应用及安全更新。仓库分为: Main:官方维护的自由开源软件 Universe:社区维护的自由开源…...
Docker run -v 的 rw 和 ro 模式_docker ro
一、前言 在使用 Docker 启动容器时,通常需要将宿主机的文件或目录挂载到容器中,以便于管理配置、持久化数据和调试日志。本篇博客将重点介绍 -v/--volume 参数的使用方式、挂载权限(rw 与 ro)的区别,以及如何通过 do…...
React+TypeScript多步骤表单:告别表单地狱的现代解决方案
开篇:深夜的表单困局 凌晨两点,键盘声在寂静的办公室回响。前端工程师小李盯着屏幕上的错误提示:“类型"FormData"上不存在属性’email’”。这已经是本周第三次因为字段名拼写错误导致的调试灾难。他揉着发酸的眼睛想:…...
【工具使用】STM32CubeMX-USB配置-实现U盘功能
一、概述 无论是新手还是大佬,基于STM32单片机的开发,使用STM32CubeMX都是可以极大提升开发效率的,并且其界面化的开发,也大大降低了新手对STM32单片机的开发门槛。 本文主要讲述STM32芯片USB功能的配置及其相关知识。 二…...
【LUT技术专题】DnLUT代码解读
目录 原文概要 1. 训练 本文是对DnLUT技术的代码解读,原文解读请看DnLUT。 原文概要 DnLUT通过PCM模块和L型卷积,有效提升以往基于LUT方法降低色噪声的能力,用最小的存储量得到了同样的感受野范围,主要是2个创新点࿱…...
python宠物用品商城系统
目录 技术栈介绍具体实现截图系统设计研究方法:设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理,难度适中…...
2156. 查找给定哈希值的子串
给定整数 p 和 m ,一个长度为 k 且下标从 0 开始的字符串 s 的哈希值按照如下函数计算: hash(s, p, m) (val(s[0]) * p0 val(s[1]) * p1 ... val(s[k-1]) * pk-1) mod m. 其中 val(s[i]) 表示 s[i] 在字母表中的下标,从 val(a) 1 到 v…...
Index-AniSora技术升级开源:动漫视频生成强化学习
B站升级动画视频生成模型Index-AniSora技术并开源,支持番剧、国创、漫改动画、VTuber、动画PV、鬼畜动画等多种二次元风格视频镜头一键生成! 整个工作技术原理基于B站提出的 AniSora: Exploring the Frontiers of Animation Video Generation in the So…...
游戏引擎学习第297天:将实体分离到Z层中
回顾并为今天的内容做准备 昨天我们做了雾效混合(fog blend)和透明度混合(alpha blending)的尝试,现在正在进行渲染部分的深度(Z)清理工作。今天的重点是把“切片”(slices…...
全局对比度调整
目录 一、全局对比度调整原理 二、饱和度保持 一、全局对比度调整原理 Figure1.2 展示了一幅全局对比度较低的图像及其亮度直方图。该直方图分布范围较窄,像素的强度仅集中在中间调区域,不存在明亮或深色的像素,因此图像中的细节难以区分,可用动态范围未得到有效利用。在动…...
Canvas SVG BpmnJS编辑器中Canvas与SVG职能详解
Canvas详解与常见API 一、Canvas基础 核心特性 • 像素级绘图:Canvas是基于位图的绘图技术,通过JavaScript操作像素实现图形渲染,适合动态、高性能场景(如游戏、数据可视化)。 • 即时模式:每次绘制需手动…...
【图像大模型】Stable Diffusion 3 Medium:多模态扩散模型的技术突破与实践指南
Stable Diffusion 3 Medium:多模态扩散模型的技术突破与实践指南 一、架构设计与技术演进1.1 核心架构革新1.2 关键技术突破1.2.1 整流流(Rectified Flow)1.2.2 动态掩码训练 二、系统架构解析2.1 完整推理流程2.2 性能对比 三、实战部署指南…...
PID项目---硬件设计
该项目是立创训练营项目,这些是我个人学习的记录,记得比较潦草 1.硬件-电路原理电赛-TI-基于MSPM0的简易PID项目_哔哩哔哩_bilibili 这个地方接地是静电的考量 这个保护二极管是为了在电源接反的时候保护电脑等设备 大电容的作用:当电机工作…...