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

阅读笔记---城市计算中用于预测学习的时空图神经网络研究综述

摘要

随着近年来传感技术的进步,智能城市产生并记录了无数的时空数据。预测时空数据的演变模式是城市计算的一个重要而又苛刻的方面,它可以增强各个领域的智能管理决策,包括交通、环境、气候、公共安全、医疗保健等。传统的统计和深度学习方法难以捕捉城市时空数据中的复杂相关性。为此,近年来提出了时空图神经网络(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的最新发展,我们回顾了最近一些值得注意的工作,重点是空间学习方法、时间学习方法、时空融合方法和其他可以结合的先进技术。最后,我们总结了当前研究面临的挑战,并提出了一些潜在的研究方向。

相关文章:

  • JVM的面试相关问题
  • List优雅分组
  • Python打卡DAY31
  • STM32+ESP8266+ONENET+微信小程序上传数据下发指令避坑指南
  • .NET 10 - 尝试一下Minimal Api的Validation新特性
  • LangChain4j入门(六)整合提示词(Prompt)
  • RK3588 ArmNN CPU/GPU ResNet50 FP32/FP16/INT8 推理测试
  • .NET外挂系列:3. 了解 harmony 中灵活的纯手工注入方式
  • 如何自学FPGA设计?
  • 2.4.2死锁的处理策略-预防死锁
  • DB31/T 1552-2025《居民电子健康档案应用系统等级评估指南》:上海地方标准全面解析
  • notepad++
  • 【设计模式】基于 Java 语言实现工厂模式
  • 替换word中的excel
  • OpenCV 第6课 图像处理之几何变换(重映射)
  • 水利数据采集MCU水资源的智能守护者
  • numpy数组的复数和时间的操作
  • 软考软件评测师——黑盒测试测试方法
  • vscode 常用调试
  • Linux中的 I/O 复用机制 select
  • 国家发改委:城市更新项目必须建立多元化多层级资金投入机制
  • 张宇祥已任上海闵行区委常委、副区长
  • 外交部发言人就第78届世界卫生大会拒绝涉台提案发表谈话
  • 海军“吉祥方舟”号医院船开展海上卫勤演练
  • 鸿蒙电脑正式发布,国产操作系统在个人电脑领域实现重要突破
  • 半数以上中国人都缺这几种营养,吃什么能补回来?