图神经网络论文学习笔记-Graph Neural Networks: A Review of Methods and Applications_graph neural network-based fault diagnosis: a revi-程序员宅基地

技术标签: 图神经网络  # 知识图谱  GNN  自然语言处理  知识图谱  

目录

0 前言:

内容概括

1 Abstract:

2 Introduction:

2 Model(模型)

2.1 Graph Neural Networks

2.2 Variants of Graph Neural Networks(图神经网络的变体)

2.2.1 Graph Types(图的种类)

2.2.2 Propagation Types(传播类型图示)

2.2.3 Training Methods(训练方法)

2.3 General Frameworks(总体框架)

2.2.3 Non-local Neural Networks(非局部神经网络)

2.2.4 Graph Networks

3 APPLICATIONS(应用)

3.1 Structural Scenarios(结构场景)

3.1.1 KG 知识图谱:

3.2 Non-structural Scenarios(非结构场景)

Text:

3.2.1 !!!Relation extraction实体抽取

3.2.2 Event extraction

4 OPEN PROBLEMS(开放性问题)

5 参考文献:


文章来源:忆_恒心(CSDN)

0 前言:

图卷积网络是近年来比较火的一个学习方向,无论是自然语言处理还是计算机视觉领域,都是需要对这个网络模型有一定的了解。

这一篇论文是一个不错的入门文章。

研0看的这一篇算图神经网络的一篇综述,主要汇集了大多数相关方向的技术,从图的种类的传播类型以及训练方法,再到新提出的一宗统一的框架最后提出了相关的应用

对图形进行了全面审查神经网络。

对于GNN模型,本论文介绍其变体

从三个方面进行划分

  • 图类型
  • 传播类型
  • 训练分类类型。

此外,我们还总结了几个通用框架以统一表示不同的变体。

应用上,我们将GNN应用划分 分为结构性场景非结构性场景其他场景,然后针对 每个方案。

最后,我们提出四个开放性问题,这些问题表明了该领域的主要挑战和未来的研究方向 图神经网络,包括模型深度可伸缩性处理动态图非结构图的能力场景

内容概括

  • 对现有的图神经网络模型进行了详细的回顾。介绍了原始模型、它的变体和几个通用框架。研究了这一领域的各种模型,并在不同的模型中提供了一个统一的表示方法来实现不同的传播步骤。

  • 将应用场景分为结构化场景、非结构化场景和其他场景。

  • 提出了四个有待进一步研究的问题。

图神经网络论文的github

记录一下难点

博客译文参考

1 Abstract:

门控图网络(LSTM和GRU)(门控图网络),对现有的神经网络做了详细的回顾,并提出了四个有待进一步研究的问题

2 Introduction:

图分析是机器学习中唯一的非欧几里得数据结构,主要研究节点分类、链路预测和聚类

在图中,将关系作为边,将对象作为节点

我们知道CNN只能应用于正则的欧几里得数据例如2-D的图像、1-D的文本),这些形式的数据被看成图的实例化,然而处理的时候会对图像进行压缩(因此有了自然语言常用的RNN,与其产生原因类似)

随着对GNN和CNNs的深入分析,发现其有三个共同的特点:

(1)局部连接

(2)权值共享

(3)多层网络。

这对于GNN来说同样有重要的意义。

(1)局部连接是图的最基本的表现形式。

(2)权值共享可以减少网络的计算量。

(3)多层结构可以让网络捕获不同的特征。

然而,从CNN到GNN的转变还面临这另一个问题,难以定义局部卷积核池化操作。如下图所示:

这也阻碍了CNN由传统欧几里得空间向非欧几里得空间的扩展。

重点介绍图神经网络

图神经网络(GNNs)是一种连接主义模型,它通过图节点之间的消息传递(message passing)来捕获图的关系。与标准神经网络不同的是,图神经网络可以收集一个节点周围任意深度邻节点的信息。图神经网络可以处理图结构数据。

  • CNN 只能作用在规则的 Euclidean 数据上。

    CNN强在{局部连接,权值共享,多层抽象},怎么让GNN在图结构上拥有同样的属性?

  • 使用图嵌入(Graph Embedding)把图改造成规则化数据,需要人工设计特征,计算复杂,效果也未必好。
    几种图嵌入方法:DeepWalk、LINE、SDNE)

因此,图表示方法被注意了起来,即如何将图中的节点、边和子图以低维向量的形式表现出来。受启发于表示学习(representation learning)和词嵌入(word embedding)(关于这部分的发展可以参考一下我的笔记:知识图谱-关系抽取(含词嵌入)),图嵌入技术得到了长足的发展。

DeepWalk基于表示学习,被认为是第一种图嵌入技术模型。还有基于SkipGram模型的random walk。以及node2vec,LINE和TADW等。然而以上的这些模型存在两个缺点:

(1)图中节点之间不存在任何的参数共享,导致计算量与节点数量呈线性增长。

(2)图嵌入技术缺乏泛化能力,导致不能处理动态图或推广至新的图。

GNN相对于传统的神经网络来说也是存在优势的。

  • 标准的CNN和RNN网络不能处理图输入这种非顺序排序的特征表示。
  • 图中节点的排序是没有规律可言的(比如上图的猫的非欧几里得图空间),如果采用CNN和RNN处理图数据只能遍历图中节点所有可能的出现顺序作为模型的输入,这对模型的计算能力来说是难以承受的.
  • 其中图中的边表示节点之间的依赖关系(GNN可以依赖周围的状态来更新节点的状态);而传统的神经网络中,这种依赖关系只能通过节点的特征表示来体现。
  • 推理能力与人类从日常经验中获取推理能力相似,GNN能够从非结构化数据(例如:场景图片、故事片段等)中生成图。与之对比的是,传统CNN和RNN能够从大量经验数据中生成完整的图片和文档,但并不能学习出这种推理图(reasoning graph)在知识图谱中,推理能力这一点是非常重要的

论文的主要贡献有:

  • 提出一种统一的表现形式来展示不同模型中的不同传播步骤。
  • 详细介绍了几种主流方法在不同场景中的应用。
  • 对GNN面临的over-smoothing(过度平滑)、scaling problems()、dynamic graph和 non –structural data问题做出分析和展望。

一般情况下,gnn通过其邻域状态的加权和来更新节点的隐藏状态。

GNNs into five groups: graph convolutional networks, graph attention networks, graph auto-encoders, graph generative networks and graph spatial-temporal networks.

我们在2.2.1节中给出了图时空网络,因为模型通常用于动态图。我们引入了图形自动编码器
第2.2.3节当他们在无人监督的情况下接受训练时。
最后,我们介绍图生成网络在图生成中的应用(见3.3.1节)。

扩展补充

GNN发生平滑的原因:https://www.zhihu.com/question/346942899/answer/848298494

拉普拉斯矩阵的讲解:https://blog.csdn.net/resourse_sharing/article/details/44020189

https://blog.csdn.net/baimafujinji/article/details/74169484

注意与之前学习到的朴素贝叶斯算法的拉普拉斯平滑区别(虽然差别很大),可就是刚刚搞混了

图嵌入和图神经网络在本文中的区别

图嵌入旨在通过保留图的网络拓扑结构和节点内容信息将图中顶点表示为低维向量,以便使用简单的机器学习算法(例如,支持向量机分类)进行处理。许多图嵌入算法通常是无监督的算法,它们可以大致可以划分为三个类别,即矩阵分解、随机游走和深度学习方法。同时图嵌入的深度学习方法也属于图神经网络,包括基于图自动编码器的算法(如DNGR和SDNE)和无监督训练的图卷积神经网络(如GraphSage)。

2 Model(模型)

2.1 Graph Neural Networks

GNN的目标是训练出一个state embedding(状态嵌入,这个词在知识图谱中我们使用到马尔科夫的例子上可以了解到)函数hv,该函数包含了每个节点的领域信息。

hv是节点v的向量化表示,它可以被用来去预测该节点的输出Ov(例如节点的标签)。f(*)被称为local transition function,它被所有的节点共享,并根据输入的领域信息来更新节点的状态。

Xv是节点v的特征表示,xco[v]是v节点上边的特征表示,hne[v]是该节点的状态,xne[v] 是节点v周围节点的特征表示。

g(*)被称为local output function,它是用来产生节点的输出的。

H、O、X、XN为其推广形式,代表图中的所有对象的堆叠形式。

有了巴拿赫不动点定理(见下方的补充知识,对其进行内容讲解),GNN中state的迭代计算过程可以表示如下:

迭代的形式以指数的形式进行进行收敛

 对于一个GNN网络来说,其训练过程就是学习出函数f(*)和g(*)tv代表其一个有监督的节点,GNN的优化过程为:

P代表图中所有有监督节点的数量。优化是基于梯度下降算法的,并且被表示如下:

  1. h被公式1迭代更新,直到T时间步。H(T)=H。(也就是不动点
  2. 权重W的梯度通过loss计算得出。
  3. 进行梯度更新。

缺陷:

  1. 对于不动点隐藏状态的更新是十分低效的。如果放松对不动点的假设,论文中提出一种多层GNN可以得到节点及其邻域的稳定表示。---如果放宽不动点的假设,我们可以设计一个多层的GNN来得到一个稳定的节点及其邻域的表示
  2. GNN在迭代的过程中用相同的参数,然而大多标准网络在不同的网络层数使用不同的参数,因此其时一种-----层次特征的提取
  3. 在原始的GNN中存在着一些无法有效建模的边缘信息特征。例如,在知识图谱中边代表这关系类型,不同边缘的消息传递应该根据他们的类型有所不同。怎么样去学习边缘的隐藏状态也是一个重要的问题。---节点隐藏状态的更新是一个循序渐进的过程RNN内核,如GRU和LSTM
  4. 如果把重点放在节点的表示而不是图上,就不适合使用不动点,因为不动点上表示的分布会变得非常平滑,且每个节点的信息量也会减少。

补充知识-不动点


2.2 Variants of Graph Neural Networks(图神经网络的变体)

2.2.1 Graph Types(图的种类)

在原始的GNN中,模型的输入信息包含有监督的节点信息和无向的边。近年来,诸多类型的变种也层出不穷。

我们将图神经网络划分为五大类别,分别是:图卷积网络(Graph Convolution Networks,GCN)图注意力网络(Graph Attention Networks)图自编码器( Graph Autoencoders)图生成网络( Graph Generative Networks) 和图时空网络(Graph Spatial-temporal Networks)

Directed Graphs(有向图)

有向图比无向图更加丰富,例如,在知识图谱中两个实体被一条边链接,但是第一个实体是第二个实体的父类,这就要求模型以不同的形式来对待父类和子类的信息传播过程。

DGP模型用两种权重矩阵WP和WC来表达更加精确的结构信息。

Heterogeneous Graphs(异构图)

在异构图中,包含有不同类型的几种节点。表现不同类型节点最简单的形式是,将类型用one-hot向量表示,然后与原始节点的特征向量进行拼接。GraphInception模型将metapath(是一种路径游走方式,与之对应的是完全随机选择游走)的概念引入到了异构图的传播中。我们可以对邻近节点进行分类,根据其节点的类型和其距离。对于每个邻近节点群,GraphInception将它作为一个同构图中的子图,并将来自于不同同构图的传播结果连接起来视为一个集合节点来表示。

Graphs with Edge Information

在图中,边也蕴含着丰富的信息,例如权重和边的类型等。有两种表示图的方式:

(1)两个节点之间的边切割开成两条边,然后将边也转化成节点。

(2)在传播过程中,不同的边上有不同的权值矩阵。

这些变体利用不同的聚合器从每个节点的邻居收集信息,并使用特定的更新器更新节点的隐藏状态

2.2.2 Propagation Types(传播类型图示)

在模型中,信息的传播步骤和输出步骤是获得节点或者边隐含状态的关键步骤。不同变种的GNN的聚合函数(用来聚合图中所有点的邻域信息,产生一个全局性的输出)并使用特定的更新器更新节点的隐藏状态如下图所示:

Specttal

  • ConvolutionGCN将卷积操作应用到图结构的数据上,主要分为Spectral method Spatial Method 两种方法。其目的都是对节点以及节点的邻近节点进行信息收集。
  • ChebNet、GCN:这些模型都使用原始的图结构来表示节点之间的关系
  • AGCN:然而,不同节点之间可能存在着隐性的关系和适应性提出了图卷积网络(AGCN)来学习底层关系.AGCN学习一个“残差”图的拉普拉斯矩阵,并将其添加到原始的拉普拉斯矩阵中.GGP可以证明适用性

所有的Specttal方法中,学习的滤波器都依赖于拉普拉斯特征基,而拉普拉斯特征基又依赖于图的结构,也就是说,基于特定结构训练的模型不能直接应用于具有不同结构的图

Spatial

谱外方法直接在图上定义卷积,在空间上的近邻上操作。非光谱方法的主要挑战是定义具有不同大小邻域的卷积运算以及保持cnn的局部不变性

MoNet:提出了一种基于非欧几里得区域的空间域模型,该模型可以推广先前的几种方法

Gate使用GRU或者是LSTM这种带有门控机制的网络,来增强信息在图结构中的长期的传播。

AttentionGAT是一种图注意网络,它将注意力机制融入到了图传播的步骤中。GAT计算每个节点的隐藏状态,通过将 “attention” 机制应用到邻近节点上。

Skip connection研究发现更深的网络层数可以帮助网络在节点的邻域节点上获取到更多的信息。但通过实验也发现深层网络也会在网络传播中带来噪声信息,随着网络层数的加深,网络还会出现退化。基于图像领域的启发,residual network(残差网络)和highway network 这些skip 模型能够有效的处理这一问题。

GateUpate:GRU与LSTM有很多的相似之处,图与树的主要区别在于图的边具有标签。利用不同的权值矩阵来表示不同的标签。

2.2.3 Training Methods(训练方法)

原有的GCN神经网络存在缺陷:

  • 单个节点的接受域相对于层数呈指数增长,计算单个节点的梯度代价较大。
  • 最后,对于固定图,GCN是独立训练的,缺乏归纳学习的能力

GraphSAG:GraphSAGE通过学习聚合和传播函数,可以为未看到的节点生成嵌入

PinSag:提出了基于重要度的抽样方法。通过模拟从目标节点开始的随机行走,该方法选择具有最高标准化访问计数的T个节点

FastGCN:FastGCN[78]进一步改进了采样算法。FastGCN不是对每个节点采样邻居,而是直接对每个laye的接受域采样.引入了一个参数化和可训练的采样器,以前一层为条件进行分层采样

Receptive Field Contro:提出了一种基于控制变量的随机逼近算法,利用节点的历史活动作为控制变量。

Data Augmentation(数据增强):GCN需要许多附加的标记数据来进行验证,而且还受到卷积过滤器的本地化特性的影响

论文中还介绍了几种GNN的训练方法。比如GraphSAGE从节点的邻域聚合信息。FastGCN采用样本采样方法替代节点的所有邻域信息。这些训练方法,都使得模型的训练效率更加的高效。

Unsupervised Training.无人监督的培训gnn通常用于监督或半监督学习问题。近年来,将自动编码器扩展到图形领域已成为一种趋势。图形自动编码器的目标是通过无监督的训练方式将节点表示为低维向量

2.3 General Frameworks(总体框架)

除了几种不同的GNN变种模型在论文中被介绍,几种图框架也被提出用来整合不同模型方法至单一框架中。

MPNN(message passing neural network):

GN(graph network):统一了包括MPNN、NLNN、和其他几种图网络模型。

2.2.1 Message Passing Neural Networks(消息传递神经网络)MPNN

 MPNN网络包含两个阶段,message passing阶段和readout阶段。Message passing阶段在时间T步内发生,它被定义为message函数Mt和节点更新函数Ut。在时间T步内的节点隐状态通过Mt和Ut来产生t+1时刻节点的隐状态。

evw代表节点v到节点w上边的特征。Readout阶段可以被定义为对整个图计算特征向量。T代表所有的时间步骤。具体的函数设置和方法选择可以进行调整,例如GGNN。

2.2.3 Non-local Neural Networks(非局部神经网络)

NLNN网络被提出用来去捕获深度神经网络中存在的长期依赖问题。Non-local可以被推广成:

i是输出位置的索引,j代表图中所有可能出现的位置的索引。函数f(*)被用来计算i和j节点之间的距离。g(*)代表输入节点隐状态的一个变化。最后计算出来的值被正则化。

函数f选择:Gaussian高斯函数:、Embedded Gaussian嵌入式高斯、Dot product(点击)

统一了几种self-attention方法的图模型。

2.2.4 Graph Networks

图网络的定义:一个图被定义成一个三元组的形式G=(U,H,E)。U代表一个全局属性,H代表图中所有节点的属性,E代表图中所有发射节点、接收节点和它们之间边的属性。

GN-block:一个GN块包含三个“更新”函数、三个“聚合”函数和三个“更新”函数

Computation step 计算步骤

(1)\phi ^{e} 用参数\left ( e_{k},h_{rk},h_{sk},u \right )应用于每条边,并返回{e}'_{k}。每个节点i 的每条边输出结果集为{E}'_{i}=\left \{ \left ( {e}'_{k},r_{k},s_{k} \right ) \right \}_{r_{k}=i,k=1:N^{e}}{E}'_{i}=\bigcup _{i}{E}'_{i}=\left \{ \left ( {e}'_{k},r_{k},s_{k} \right ) \right \}_{k=1:N^{e}}是所有边沿输出的集合.

(2)\rho ^{e\rightarrow h} 应用于{E}'_{i},并将投影到顶点i 的边的边更新聚合到{\bar{e}_{i}}' 中,这将在下一步的节点更新中使用。

(3)\phi ^{h} 被应用于每个节点i ,以计算更新的节点属性{h}'_{i} 。得到的每节点输出的集合是,{H}'=\left \{ {h}'_{i} \right \}_{i=1:N^{v}}

(4)\rho ^{e\rightarrow u} 应用于{E}',并将所有边更新聚合到{\bar{e}}' 中,然后在下一步的全局更新中使用。

(5)\rho ^{h\rightarrow u}应用于{H}',并将所有节点更新聚合到{\bar{h}}'中,然后在下一步的全局更新中使用。

(6)\phi ^{u} 在每个图中应用一次,并计算全局属性{u }' 的更新

图的设计有三个基本原则:

  1. Flexible representation :图中节点和边的属性可以被任何形式的数据来表示,不过比较常用的还是以向量或者是张量的形式来表达的。
  2. Gonfigurable with-block structure:GN中每个块都是可配置的,可以是不同的设置组合。
  3. Composable multi-block architectures:GN可以被组合成复杂的体系结构,这些架构如下图所示:

3 APPLICATIONS(应用)

图网络被广泛的应用于包括监督学习、半监督学习、无监督学习和强化学习等方向。

论文中从三个不同的场景来分别阐述图网络的应用。

(1)结构化场景:数据包含有很明确的关系结构,如物理系统、分子结构和知识图谱。

(2)非结构化场景:数据不包含明确的关系结构,例如文本和图像等领域。

(3)其他应用场景:例如生成式模型和组合优化模型。

各个领域图网络的应用细节如下图所示:

关于知识图谱(KG),到时有需要的时候可以重点看一下[4][110]的文献

3.1 Structural Scenarios(结构场景)

GNN被广泛的应用到包括应用物理、分子化学和知识图谱等领域。

3.1.1 KG 知识图谱:

参考文献[6]利用网络去解决知识库不足的问题

【126】利用GCNs解决跨语言知识图对齐问题。该模型将来自不同语言的实体嵌入到统一的嵌入空间中,并根据嵌入相似性对实体进行对齐

3.2 Non-structural Scenarios(非结构场景)

(这部分与论文目录无瓜,纯属笔记)

 Image:在图像分类中,每个类别被视为图中的一个节点

Text

在文本分类中,可以将文档或者句子看作成图中的一个节点(异构图)

然后使用文本GCN学习文档或者句子的向量化表示,作为节点的原始输入。如果将句子中的每个单词看成是图中的节点的话,那么GNN可以被用来解决序列标注问题,例如词性标注或者是命名实体识别。

图网络还被拓展至许多NLP任务上,例如关系抽取和时间抽取等。

GNN还可以被应用到许多其他情景中去。

3.2.1 !!!Relation extraction实体抽取

一些系统将此任务视为两个独立任务的管道,命名实体识别和关系提取提出了一种采用双向顺序树形结构的LSTM-RNNs端到端关系提取模型。
[113]提出了一种针对关系提取而定制的图卷积网络的扩展,并对输入树应用了一种剪枝策略

Cross-sentence N-ary relation extraction 检测跨多个句子的n个实体之间的关系,它将输入图分割成两个图块,但在分割过程中会丢失重要的信息,因此提出了一种图态LSTM模型。它保持了原始的图结构,并允许更多的并行化,从而加快了计算速度

3.2.2 Event extraction

事件抽取是一项重要的信息抽取任务,用于识别文本中特定类型事件的实例。[114]研究了一种基于依赖树的卷积神经网络(确切地说是语法GCN)来执行事件检测。
[115]提出了联合多事件提取(JMEE)框架来联合提取多个事件触发器(Jointly Multiple Events Extraction (JMEE)并通过引入语法捷径弧(arguments by introducing syntactic shortcut arcs来增强基于注意力的图卷积网络的信息流来建模图信息

4 OPEN PROBLEMS(开放性问题)

  1. 浅层结构:目前GNN还只能在较浅层的网络上发挥优势,随着层数的加深,网络会出现退化。

  2. 动态图:目前大多方法只能应用在静态图上,对于动态图还没有特别好的解决方案。

  3. 非结构化场景:还没有一个通用的方法来合理的处理非结构化数据。
  4. 扩展性:将图网络应用于大规模数据上仍然面临着不小的困难。

5 参考文献:

  1. 论文链接:https://arxiv.org/pdf/1812.08434.pdf
  2. 图神经网络学习记录:《图神经网络综述:模型与应用》https://blog.csdn.net/qq_40931181/article/details/89321770
  3. 论文中文翻译:https://blog.csdn.net/m0_38031488/article/details/88414320
  4. 论文笔记:https://blog.csdn.net/qq_34361099/article/details/86772602
  5. 图神经网络的整理:https://github.com/cy69855522/AI-Paper-Drawer/blob/master/%E5%9B%BE%E7%BD%91%E7%BB%9C%E4%B8%93%E5%8C%BA.md
  6. 知乎高赞的文章:https://zhuanlan.zhihu.com/p/75307407?from_voters_page=true
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37457202/article/details/108503670

智能推荐

JavaScript学习笔记_curry函数未定义-程序员宅基地

文章浏览阅读343次。五种原始的变量类型1.Undefined--未定义类型 例:var v;2.String -- ' '或" "3.Boolean4.Number5.Null--空类型 例: var v=null;Number中:NaN -- not a number非数本身是一个数字,但是它和任何数字都不相等,代表非数,它和自己都不相等判断是不是NaN不能用=_curry函数未定义

兑换码编码方案实践_优惠券编码规则-程序员宅基地

文章浏览阅读1.2w次,点赞2次,收藏17次。兑换码编码设计当前各个业务系统,只要涉及到产品销售,就离不开大大小小的运营活动需求,其中最普遍的就是兑换码需求,无论是线下活动或者是线上活动,都能起到良好的宣传效果。兑换码:由一系列字符组成,每一个兑换码对应系统中的一组信息,可以是优惠信息(优惠券),也可以是相关奖品信息。在实际的运营活动中,要求兑换码是唯一的,每一个兑换码对应一个优惠信息,而且需求量往往比较大(实际上的需求只有预期_优惠券编码规则

c语言周林答案,C语言程序设计实训教程教学课件作者周林ch04结构化程序设计课件.ppt...-程序员宅基地

文章浏览阅读45次。C语言程序设计实训教程教学课件作者周林ch04结构化程序设计课件.ppt* * 4.1 选择结构程序设计 4.2 循环结构程序设计 4.3 辅助控制语句 第四章 结构化程序设计 4.1 选择结构程序设计 在现实生活中,需要进行判断和选择的情况是很多的: 如果你在家,我去拜访你 如果考试不及格,要补考 如果遇到红灯,要停车等待 第四章 结构化程序设计 在现实生活中,需要进行判断和选择的情况..._在现实生活中遇到过条件判断的问

幻数使用说明_ioctl-number.txt幻数说明-程序员宅基地

文章浏览阅读999次。幻数使用说明 在驱动程序中实现的ioctl函数体内,实际上是有一个switch{case}结构,每一个case对应一个命令码,做出一些相应的操作。怎么实现这些操作,这是每一个程序员自己的事情。 因为设备都是特定的,这里也没法说。关键在于怎样组织命令码,因为在ioctl中命令码是唯一联系用户程序命令和驱动程序支持的途径 。 命令码的组织是有一些讲究的,因为我们一定要做到命令和设备是一一对应的,利_ioctl-number.txt幻数说明

ORB-SLAM3 + VScode:检测到 #include 错误。请更新 includePath。已为此翻译单元禁用波浪曲线_orb-slam3 include <system.h> 报错-程序员宅基地

文章浏览阅读399次。键盘按下“Shift+Ctrl+p” 输入: C++Configurations,选择JSON界面做如下改动:1.首先把 “/usr/include”,放在最前2.查看C++路径,终端输入gcc -v -E -x c++ - /usr/include/c++/5 /usr/include/x86_64-linux-gnu/c++/5 /usr/include/c++/5/backward /usr/lib/gcc/x86_64-linux-gnu/5/include /usr/local/_orb-slam3 include 报错

「Sqlserver」数据分析师有理由爱Sqlserver之十-Sqlserver自动化篇-程序员宅基地

文章浏览阅读129次。本系列的最后一篇,因未有精力写更多的入门教程,上篇已经抛出书单,有兴趣的朋友可阅读好书来成长,此系列主讲有理由爱Sqlserver的论证性文章,希望读者们看完后,可自行做出判断,Sqlserver是否真的合适自己,目的已达成。渴望自动化及使用场景笔者所最能接触到的群体为Excel、PowerBI用户群体,在Excel中,我们知道可以使用VBA、VSTO来给Excel带来自动化操作..._sqlsever 数据分析

随便推点

智慧校园智慧教育大数据平台(教育大脑)项目建设方案PPT_高校智慧大脑-程序员宅基地

文章浏览阅读294次,点赞6次,收藏4次。教育智脑)建立学校的全连接中台,对学校运营过程中的数据进行处理和标准化管理,挖掘数据的价值。能:一、原先孤立的系统聚合到一个统一的平台,实现单点登录,统一身份认证,方便管理;三、数据共享,盘活了教育大数据资源,通过对外提供数。的方式构建教育的通用服务能力平台,支撑教育核心服务能力的沉淀和共享。物联网将学校的各要素(人、机、料、法、环、测)全面互联,数据实时。智慧校园解决方案,赋能教学、管理和服务升级,智慧教育体系,该数据平台具有以下几大功。教育大数据平台底座:教育智脑。教育大数据平台,以中国联通。_高校智慧大脑

编程5大算法总结--概念加实例_算法概念实例-程序员宅基地

文章浏览阅读9.5k次,点赞2次,收藏27次。分治法,动态规划法,贪心算法这三者之间有类似之处,比如都需要将问题划分为一个个子问题,然后通过解决这些子问题来解决最终问题。但其实这三者之间的区别还是蛮大的。贪心是则可看成是链式结构回溯和分支界限为穷举式的搜索,其思想的差异是深度优先和广度优先一:分治算法一、基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两_算法概念实例

随笔—醒悟篇之考研调剂_考研调剂抑郁-程序员宅基地

文章浏览阅读5.6k次。考研篇emmmmm,这是我随笔篇章的第二更,原本计划是在中秋放假期间写好的,但是放假的时候被安排写一下单例模式,做了俩机试题目,还刷了下PAT的东西,emmmmm,最主要的还是因为我浪的很开心,没空出时间来写写东西。  距离我考研结束已经快两年了,距离今年的考研还有90天左右。  趁着这个机会回忆一下青春,这一篇会写的比较有趣,好玩,纯粹是为了记录一下当年考研中发生的有趣的事。  首先介绍..._考研调剂抑郁

SpringMVC_class org.springframework.web.filter.characterenco-程序员宅基地

文章浏览阅读438次。SpringMVC文章目录SpringMVC1、SpringMVC简介1.1 什么是MVC1.2 什么是SpringMVC1.3 SpringMVC的特点2、HelloWorld2.1 开发环境2.2 创建maven工程a>添加web模块b>打包方式:warc>引入依赖2.3 配置web.xml2.4 创建请求控制器2.5 创建SpringMVC的配置文件2.6 测试Helloworld2.7 总结3、@RequestMapping注解3.1 @RequestMapping注解的功能3._class org.springframework.web.filter.characterencodingfilter is not a jakart

gdb: Don‘t know how to run. Try “help target“._don't know how to run. try "help target".-程序员宅基地

文章浏览阅读4.9k次。gdb 远程调试的一个问题:Don't know how to run. Try "help target".它在抱怨不知道怎么跑,目标是什么. 你需要为它指定target remote 或target extended-remote例如:target extended-remote 192.168.1.136:1234指明target 是某IP的某端口完整示例如下:targ..._don't know how to run. try "help target".

c语言程序设计教程 郭浩志,C语言程序设计教程答案杨路明郭浩志-程序员宅基地

文章浏览阅读85次。习题 11、算法描述主要是用两种基本方法:第一是自然语言描述,第二是使用专用工具进行算法描述2、c 语言程序的结构如下:1、c 语言程序由函数组成,每个程序必须具有一个 main 函数作为程序的主控函数。2、“/*“与“*/“之间的内容构成 c 语言程序的注释部分。3、用预处理命令#include 可以包含有关文件的信息。4、大小写字母在 c 语言中是有区别的。5、除 main 函数和标准库函数以..._c语言语法0x1e