Graph Neural Network(GNN)图神经网络
Graph Neural Network(GNN)图神经网络,是一种旨在对图结构数据就行操作的深度学习算法。它可以很自然地表示现实世界中的很多问题,包括社交网络,分子结构和交通网络等。GNN旨在处理此类图结构数据,并对图中的节点和边进行预测或执行任务。
GNN中节点的信息 通过节点和节点之间连接的边 在节点之间传递。其中每个节点都可以从其和它相邻的节点中接收信息并相应地更新自己的信息,这个过程通常会重复多次以使信息充分地沿着边流动和在节点出聚合。然后这些更新的节点可以用于对节点的分类(node classification)、节点之间边的预测(两个节点之间是否存在边)、对于整个图的分类、生成一个新的图(比如VAE或GAN)等等。这些已经应用于化学,社交网络和推荐系统等各个领域。
1.Graph 图
在计算机科学中,图是一种抽象的数据类型,旨在实现数学图论领域中的无向图和有向图概念。图类型的数据结构由一组有限的(可能是可变的)顶点(也称为节点或点)组成,对于无向图,这些顶点在一组无序对内,对于有向图,这些顶点在一组有序对内。这些对被称为边(也称为链接或线),对于有向图,这些对也被称为边,但有时也称为箭头或圆弧。顶点可以是图形结构的一部分,也可以是由整数索引或引用表示的外部实体。
例如,我们使用图来表示社交网络,如下图所示,图中的每个节点代表一个人,每两个节点之间的边则代表了这两个人互相认识,比如Person A 分别和Person B和Person C是好朋友,B又和D是好朋友,但是C和D却互不认识。如果这条边是无向的,可以表示较为平等的关系,比如友谊,同学等;如果是有向的,可以用来表示上下级,或是师生等关系。
2.Graph neural network 图神经网络
图神经网络是一类用于处理可以表示为图的数据的人工神经网络。在A Comprehensive Survey on Graph Neural Networks https://arxiv.org/pdf/1901.00596.pdf 中提出了将图神经网络进一步地分为Recurrent graph neural networks (RecGNNs)递归图神经网络、Convolutional graph neural networks (ConvGNNs)卷积图神经网络、Graph autoencoders (GAEs)图自动编码器 和 Spatial-temporal graph neural networks (STGNNs)时空图神经网络。
2.1 Recurrent graph neural networks (RecGNNs)循环图神经网络:
它是传统图神经网络的一种衍生,具有循环结构。循环图神经网络用来处理一系列图结构的数据,在这个过程中图随着时间而改变。在RecGNN中,图结构和图节点在每个时间步上面更新,并且更新后的信息用于做预测或者完成一些其他任务。循环图神经网络和传统的图神经网络主要区别是循环图神经网络在一个时间步上处理图一次,并且会用之前时间步的信息来更新图。(其实就是递归神经网络和普通网络的区别,然后传入的数据为图结构)。
递归神经网络相关介绍可以参看之前的文章:
https://mp.weixin.qq.com/s/tvvXyCEox-BA-Ox65v1IXQ
2.2 Convolutional graph neural networks (ConvGNNs)卷积图神经网络:
它结合了卷积运算来处理图结构数据。ConvGNN旨在用于具有固定、已知结构的图,其目标是学习节点和边的表示,这种表示对于他们在图中的相对位置不变。
在ConvGNN中,卷积运算应用于图结构和节点特征,以及更新节点和边。被更新的节点和边被传入下一层,在下一层中重复该过程。通过堆叠多层卷积层,ConvGNN可以学习图中节点和边之间越来越复杂的关系。
ConvGNN中的卷积运算被设计为置换不变的,这意味着无论图中节点和边的顺序如何,输出都是相同的。这使得ConvGNN非常适合用于节点分类、连接预测和图生成等任务。这类任务中图的结构是固定的,但是节点特征可能会发生变化。
ConvGNNs已应用于各种现实世界的问题,例如药物探索、蛋白质折叠和社交网络分析。他们特别适合需要从图结构数据中提取局部低维特征的任务,因为卷积运算旨在捕获节点和边之间的局部关系。
一个具体的例子如下图,Graph G为一个图结构数据,它有ABCDE五个节点,这五个节点每个节点有一个自己的特征向量,这里是1x3的一个向量,那么特征矩阵如图中Feature vector X 所示;对于每两个节点之间是否存在边相连,我们用邻接矩阵来表示,如下图中的Adjacency matrix A,因为整个图的边是没有方向的,所以这个图的邻接矩阵为对称矩阵,A -->E 和 E --> A对应的位置为1,而不相关的节点A -->B 则为0,同时这个图中没有一个节点存在self-loop,所以它的邻接矩阵的对角线上的值全为0,A–>A为0;从图中我们还可以发现有些节点与周围的节点产生的联系比较强,而有些节点却很少,我们用度矩阵来表示节点的这种属性,图Degree matrix D中可以看到E它与周围四个点产生了连接所以它的degree为4,而A只与E这一个节点产生连接,所以A的degree为1。
那么这些节点是如何互相影响的呢,也就是每个节点的特征如何通过边来影响到周围节点的特征的,这个过程简易地表示为下图。通过将邻接矩阵和特征矩阵进行叉乘,在邻接矩阵中,A只与E产生连接,所以相乘后,A从临近节点得到的特征全部来自于E节点。对于B,它和D、E相连,那它从临近节点得到的特征来自于D和E,这里来自D和E的权重均为1,也就是B受D和E的特征影响一样。
对于上面这个过程,我们可以看到一些不合理的地方,例如缺少了来自节点自身的特征,对于上图中得到的A结果矩阵也应该包括节点A的特征才合理,而不是只包含了来自于E节点的特征。
对于这个问题,我们可以通过向邻接矩阵A添加一个单位矩阵I来解决,得到新的邻接矩阵Ã。
当lambda=1(来自自身的特征和来自相连节点的特征一样重要),Ã = A + I。注意到这里我们可以将lambda作为一个可以训练的参数,现在这里给lambda赋值为1,得到新的邻接矩阵Ã,在新的邻接矩阵中就有self-loop了。
另外一个问题是,我们从相连的节点中的到特征不应该是简单的直接相加,比如对于B节点,直接相加从D和E节点的特征以形成自己的特征不合理,假如我们使用直接求和的方式,那么对于Degree很大的节点,也就是和周围节点连接比较强的时候,会造成该节点得到的值很大,而deree很低的节点得到的矩阵中值却很小,并且会在后期产生梯度爆炸或者消失。所以,或许我们可以采取求均值,或者使用更好的方法。此外神经网络似乎对输入数据的规模很敏感。因此,我们需要对这些向量进行归一化以消除潜在问题。
对于矩阵缩放,通常乘上一个对角矩阵。在这个例子中,我们试图去采取对特征求和再求均值,更为数学的表达就是说,根据节点的degree来缩放向量矩阵X。对于单个节点,如果与它连接的节点越多,那么每个节点对它造成的影响越小,如果它只与一个节点相连,那么与它相连的那个节点就会对这个节点造成较大的影响。这个就像,当你心里只在乎一个人的时候,那个这个人就很容易影响到你的心理状态,当你拥有大爱,心怀的是全地球上的居民,那么单个人对你的影响就小。
如下图中,新的邻接矩阵中包含self-loop,那么对于这个新的graph中的每一个节点的degree都加1,然后取倒数,就是与之相连的节点对该节点的平均权重。例如,节点A它与自身和E相连,那么degree为2,所以对于求和得到的矩阵需要除以2,对于E,它的degree为5,那么对于它的求和得到的矩阵需要除以5。
因此,通过将新的邻接矩阵和特征矩阵相乘的结果 与 新的度矩阵的逆矩阵相乘,得到所有相邻的特征向量(包括它自己)的平均。
上图中的邻接矩阵Ã为对称矩阵,这意味着它的行数和列数相同,上图的过程仅是对矩阵中的每一行进行了处理,那么直观地来说应该对每一列也做相同地处理。那么上图的过程中就需要再乘一个矩阵进行列变换,公式由原来的的 D ̃^(-1) A ̃X 变为 D ̃^(-1) A ̃D ̃^(-1) X ,示意图如下图所示:
这种新的缩放给我们加权均值。我们这里现在在做的是放更多的权重在那些有更低的degree的节点上,以减少拥有高degree节点的影响。这个加权均值的想法是,我们假设低degree的节点对他们的对它们相连的节点有更大的影响,而高degree节点产生低的影响,因为它们将影响分散给太多的邻居了。就像退休在家的父母,当他们渐渐地脱离了与集体的连接,家人变成了他们主要的连接点,所以他们会花较多的时间在家人身上,家人也因此会比之前更受影响,这个影响的性质取决于退休父母的属性(特征),比如乐观积极,会照顾家人,又或是爱攀比,爱面子,三天两头折腾子女等等。
虽然对行和列都进行了处理,也就是对于邻接矩阵的左右两边都乘以了 D ̃^(-1) ,这个过程相当于归一化了两次,所以我们这里应该使用 D ̃^(-1/2) 如下图,而不是D ̃^(-1),即公式 D ̃^(-1/2) A ̃D ̃^(-1/2) X 。
综上所述,一个2层的GCN的前向模型的公式如下:
其中:
网络层的数量决定了可以获取的最远的节点特征,例如,只有一层GCN,那么每个节点仅可以获得来自它相邻节点的特征。收集信息的过程是相互独立的,同时适用于所有节点。当在第一层上堆叠另外一层时,我们重复之前的步骤收集信息,但是这次,相连节点的信息早已经有了它们自身相连的节点的信息。所以层数即为每个节点可以跳跃到的最远的节点数。也可以认为节点应该从网络中获取信息的距离。我们可以为层配置适当的数量。通常我们不希望距离太远,根据六度分隔理论(Six Degrees of Separation)当一个节点一直向外层走了6步时,那么它将可以得到来自整个图的信息,这会使得整个模型没有意义。
那我们需要多少层呢,一般两三层就行了。
这个例子来自下面连接:
https://ai.plainenglish.io/graph-convolutional-networks-gcn-baf337d5cb6b
2.3 Graph autoencoders (GAEs)图自动编码器:
图自动编码器(Graph Autoencoder,GAE)是一种用于图结构数据的无监督学习模型,主要用于将图结构数据压缩成低维向量表示并进行重构。
在GAE中,目标是学习可用于重建原始图的图表示。GAE由两个主要成分组成:一个编码器和一个解码器。编码将图中的节点和边映射到低维表示,解码器将低维表示还原到原始的图结构。
GAE中的encoder(编码器)和decoder(解码器)通常为神经网络,并且对这些神经网络进行训练以最小化原始图和重建图之间的重建误差。通过训练GAE,编码器学习图形的低维表示,捕捉节点和边之间最重要的关系。
GAEs 已经应用于各种现实世界的问题,例如图分类,图重构和图生成等。下图是一个图重构的例子。
自动编码是一种人工神经网络用于对无标签数据学习有效的编码。一个自动编码器学习两个函数:一个编码函数转换输入数据,一个解码函数从被编码的表现中重建输入的数据。
变体的存在是为了强制学习到表示具有有用的属性。例如regularized autoencoders正则自编码器(稀疏、去噪和收缩),可以有效学习后续分类任务的表示,以及变分自动编码器,作为生成模型来应用。自编码器应用于许多问题,包括人脸识别、特征检测、异常检测和获取单词的含义。自动编码器也是生成模型,可以随机生成与输入数据(训练数据)相似的数据。
数学原理
自编码器由下列成分定义:
两个集合:解码消息空间 χ;编码消息空间Ζ。χ和Ζ均几乎总是欧拉空间,也就是 χ=R^m, Z=R^n,对于任意给定m,n (R为实数集)。
两个参数化函数族:编码族Ε_ϕ: χ→ Ζ , 被 ϕ 参数化;解码族 D_θ: Ζ→ χ ,被 θ 参数化。
对于任意的 x ϵ χ,我们通常写 z=Ε_ϕ (x) ,并将其称为code,潜在变量,潜在表示(隐层表示),本真向量等。相反的,对于任何 z ∈ Ζ ,我们通常写 x^‘=D_θ (z) ,并把它称为(解码)信息。
通常,编码和解码被定义为多层感知器。例如,一层MLP编码器 Ε_ϕ 为:
Ε_ϕ (Χ)= σ(Wx+b)
其中 σ 为element-wise激活函数,例如sigmoid函数或者rectified linear unit(整流线性单元), W 是一个叫做权重的矩阵,b为一个向量,称为bias (偏置,类似于线性拟合那个截距b)。
训练一个自动编码器
一个自动编码器,它自身是一个简单的两个function组成的数组。为了判断它的性能,我们需要一个任务。该任务被定义为在χ上的参考概率分布 μ_ref 和一个重建质量函数d: χ×χ→[0,∞],例如d(x,x’) 测量x’距离x有多远。综上,我们可以为自编码器定义损失函数为:
L(θ,ϕ)≔ Ε_(x~μ_ref ) [d(x,D_θ (E_ϕ (x)))
对于给定的任务(μ_ref,d)的最优自动编码器是
. 寻找最优自动编码器的过程可以通过如何数学优化技术来完成,但是该技术通常为梯度下降。这个搜索的过程称为训练自动编码器。在大多数情况下,参考分布只是对于给定数据集 {x_1,…,x_N}⊂χ 的经验分布,因此:
并且质量函数为L2loss:
然后最优自动编码器的问题就变为最小二乘优化:
一个自动编码器由两个主要部分组成:一个编码器将消息映射到code,解码器又将code重建为message。一个最优自动编码器应该表现得尽可能接近完美的重建,尽可能完美地被定义为重构质量函数 d。
最简单的方法来完美地执行复制任务就是重复信号。为了抑制这种行为,code空间 Ζ 通常比message 空间 χ 少一些维度。
这种自动编码器被叫做undercomplete欠完成,它可以被理解为压缩message或者减少它的维度。
在一个理想欠完全自动编码器的极限,每个可能的在code空间的code z 用于编码一个真实出现在 μ_ref 分布的message x ,并且解码器也同样是完美的:D_θ (E_ϕ (x))=x。理想的自动编码器可以用于生成messages 和真实的message相同。
如果code 空间Z的维度大于或等于message空间 χ ,或者隐藏单元被给定足够空间,一个自动编码器可以学习恒等函数,并变得无效的。然而,实验结果发现overcomplete自动编码器可能仍然学习到有用的特征。
在理想设置中,可以基于要建模的数据分布的复杂度来设置code维度和模型容量。一个标准的方法是对基本的自动编码器进行修改。(比如下面的各种变体)
该自动编码器可以有多种变体。下图就是它的各种变体,然后从上面链接的网站上可以看到。
https://en.wikipedia.org/wiki/Autoencoder#Variational_autoencoder_(VAE)
2.4 Spatial-temporal graph neural networks (STGNNs)时空图神经网络:
时空图神经网络是一种图神经网络,旨在处理具有空间和时间依赖性的图结构数据。与传统的图神经网络仅考虑节点和图的关系不同,STGNN还考虑了不同时间步长的节点之间的关系。
STGNN通常实现为递归神经网络,其中网络在每个时间步的隐藏状态根据前一个时刻的隐藏状态和当前图结构进行更新。通过考虑节点之间的时间依赖性,STGNN可以随时间捕获数据中的复杂模式和趋势。
STGNN 可以将图神经网络与循环神经网络的优势结合起来,从而有效地利用时空图数据中的空间和时间信息。STGNN 主要有两个部分:空间卷积神经网络 (Spatial GNN) 和时间递归神经网络 (Temporal RNN)。
空间卷积神经网络 (Spatial GNN) 是用于对时空图中的节点进行空间上的特征提取和表示的神经网络。该模型在考虑节点之间的空间关系时,可以使用常规的图卷积神经网络。但由于节点的特征和位置在时间上是变化的,因此需要在此基础上扩展模型来处理时序性。
时间递归神经网络 (Temporal RNN) 是用于处理时空图中的时间序列信息的神经网络。该模型在处理时间序列信息时,通常采用递归神经网络 (Recurrent Neural Networks, RNNs) 或长短时记忆网络 (Long Short-Term Memory, LSTM) 等,以捕捉时间上的依赖性。
STGNN已应用于各种现实问题中,例如交通预测,气候建模和金融市场分析。它们特别适合需要分析具有空间和时间依赖性的图结构数据任务,例如预测网络随时间的演变或分析随时间变化的实体之间的关系。
举个例子,下面示意图中的输入视频同时包含了姿势的空间和时间信息。因此,隐藏层中的节点表示取决于空间和时间方向上的相邻节点。
上图为ST-GCNS应用的一个示意图,比STGNN多了卷积运算,ST-GCN在一个时空图上面工作,它不是分别在时间和空间上进行独立的卷积运算,而是对附近的节点同时在时间和空间上进行卷积运算,如下图所示:
更为详细的内容可以打开下面连接查看:
https://medium.com/axinc-ai/st-gcn-a-machine-learning-model-for-detecting-human-actions-from-skeletons-46a95b31b5db
相关文章:
Graph Neural Network(GNN)图神经网络
Graph Neural Network(GNN)图神经网络,是一种旨在对图结构数据就行操作的深度学习算法。它可以很自然地表示现实世界中的很多问题,包括社交网络,分子结构和交通网络等。GNN旨在处理此类图结构数据,并对图中的节点和边进行预测或执…...
JSTL核心库的简单使用
JSTL核心库的简单使用 7.1考试重点 7.1.1c:out输出数据 考试重点就是c的相关的 jar包下载地址:Apache Tomcat - Apache Taglibs Downloads 看会典型应用就可以<% page contentType"text/html;charsetUTF-8" language"java" %> <% taglib uri"…...
ffmpeg.dll丢失怎么办,有什么修复ffmpeg.dll的方法
如果你在运行某些音视频软件或游戏时遇到了“ffmpeg.dll丢失”的错误消息,这意味着你的Windows系统中缺少了ffmpeg.dll文件,这是一个必要的动态链接库(DLL)文件,用于支持许多音视频软件和游戏的运行。在这篇文章中&…...
【学习笔记】NOIP爆零赛9
这场考炸了,不过也还好,正好给自己警醒的作用 t1t1t1应该是想到正解了,就是最后边界那个地方还是没有想清楚,哎这种交互题卡询问次数还是挺难受的,并且似乎我对于这种细节并不能很好把握。然后就少了50pts50pts50pts是…...
SpringMVC的常用组件和工作流程及部分注解解析
一丶SpringMVC常用的组件 1.前端控制器DispatcherServlet 作用:统一处理请求和响应。除此之外还是整个流程控制的中心,由 DispatcherServlet 来调用其他组件,处理用户的请求 接收请求,响应结果,相当于转发器ÿ…...
创建Firebase项目并接入Firebase推送: Firebase Cloud Messaging (FCM)
1.FCM简介:Firebase Cloud Messaging (FCM) 是一种跨平台消息传递解决方案,可供您可靠地传递消息,而且还是免费的服务。支持 Android,IOS,Web,Flutter,Unity.消息类型可以使用 FCM 向客户端发送两种类型的消息:通知消息…...
MyBatis的简单使用
MyBatis是一个优秀的持久型框架用于简化JDBC开发,JDBC的原生写法普遍都很麻烦,还要写原汁原味的sql语句,mybatis将很多东西都放到了配置文件里面然后用少量代码简化了免除了几乎所有的JDBC代码以及设定参数和获取结果集的工作。MyBatis 可以通…...
最新的Windows docker安装方法
什么是Docker?关于Docker的相关概述,请看:Docker_面向架构编程的博客-CSDN博客在Windows10 or Windows11中安装docker主要就两步:1.安装wsl22. 安装docker一、安装WSL2安装wslwsl --install然后重启一下电脑在cmd窗口可以查看自己…...
2023软件测试工程师涨薪攻略,3年如何达到30K
1.软件测试如何实现涨薪 首先涨薪并不是从8000涨到9000这种涨薪,而是从8000涨到15K加到25K的涨薪。基本上三年之内就可以实现。 如果我们只是普通的有应届毕业生或者是普通本科那我们就只能从小公司开始慢慢往上走。 有些同学想去做测试,是希望能够日…...
【算法题】1927. 求和游戏
题目: Alice 和 Bob 玩一个游戏,两人轮流行动,Alice 先手 。 给你一个 偶数长度 的字符串 num ,每一个字符为数字字符或者 ‘?’ 。每一次操作中,如果 num 中至少有一个 ‘?’ ,那么玩家可以执行以下操…...
有趣的 Kotlin 0x10:操作符 ..<
操作符 …< ..< 操作符是 Kotlin 在 1.7.20 版本中引入的不包含尾部元素的左闭右开区间操作符。之前我们使用的比较多的操作符可能是 .. 和 until,两者均表示区间,前者是闭区间,后者则表示不包含末端元素的左闭右开区间。 OptIn(Expe…...
mysql数据库之索引使用原则
一、最左前缀法则。 1、如果索引使用了多列(联合索引),要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。 如果跳跃到某一列,索引将部分失效(后面的字段索引失效&am…...
【Java】Spring Boot 日志文件
文章目录SpringBoot日志文件1. 日志有什么用2. 日志怎么用3. 自定义日志打印3.1 在程序中得到日志对象3.2 使用日志对象打印日志4. 日志级别4.1 日志级别有什么用?4.2 日志级别的分类与使用5. 日志持久化6. 更简单的日志输出--lombok6.1 添加 lombok 依赖6.2 输出日…...
软件项目管理计算题复习(1)
软件项目管理计算题复习(1) 1.关键路径:决定项目最早完成的一系列的活动。网络图中最长的路,最少的时差,总是差为0,也是关键路径。 2.最短路径也是最短工期 3.总时差:最晚开始-最早开始最晚结…...
BMI160 BOSCH/博世 六轴 加速度 陀螺仪 传感器
BMI160 6轴惯性运动传感器,采用MEMS传感器封装,将16位3轴加速度计和超低功耗3轴陀螺仪集成在一起。当加速度计和陀螺仪在全速模式下运行时,耗电典型值低至950A,仅为市场上同类产品耗电量的50%或者更低。 Bosch BMI160专为智能手机…...
ROS探索[wpr_simulation的编译]
遇到的多种挑战最终的解决方式是通过重新删除所有编译文件夹重新生成工程原因如下 第一次生成的catkin_make文件的时候针对环境变量进行了设置,如果不删除环境变量相关的设置则后续新装的工具工程都会受到影响掣肘Protocbuf相关问题系统中存在多个版本的Protocbuf,因此优先级…...
连接Oracle数据库失败(ORA-12514)故障排除
文章目录症状产生原因解决办法欢迎加下方我的微信👇,拉你入学习群点击试看博主的专著《MySQL 8.0运维与优化》(清华大学出版社)ORA-12514的故障是很多新手在连接Oracle数据库时经常遇到故障,它通常表示无法连接到数据库…...
DevOps 学习笔记(一) | DevOps 简介及环境搭建
1. 环境配置 本次实验需要三台服务器CI/CD 服务器、应用服务器和Harbor 服务器 DevOps 步骤 程序员将代码 push 到代码仓库Jenkins 根据触发条件拉取代码到CI/CD 服务器Jenkins 使用 Maven 将代码 build 成 jar 包Jenkins 使用 jar 包通过 Dockerfile 和 docker-compose.yml…...
日志收集笔记(Filebeat 日志收集、Logstash 日志过滤)
1 FileBeat Filebeat 是使用 Golang 实现的轻量型日志采集器,也是 Elasticsearch stack 里面的一员。本质上是一个 agent ,可以安装在各个节点上,根据配置读取对应位置的日志,并上报到相应的地方去。 1.1 FileBeat 安装与使用 …...
字节二面,原来是我对自动化测试的理解太浅薄了..
如何使用Python实现自动化测试 如果你入职一家新的公司,领导让你开展自动化测试,作为一个新人,你肯定会手忙脚乱,你会如何落地自动化测试呢?资深测试架构师沉醉将告诉你如何落地自动kan化测试,本次话题主要…...
2023雅虎邮箱不能注册?别急,这份教程教你成功注册雅虎邮箱
这几年,跨境电商的迅猛发展,越来越多人加入这片蓝海,跨境人拥有一个专业的邮箱账户显得尤为重要,它是商业交流和日常工作的必备工具。因此,雅虎邮箱成为了许多人的首选,全球范围内使用雅虎邮箱的人数是非常…...
Elasticsearch 自动补全 completion type
Elasticsearch 自带一种自动补全类型 completion 这种类型不在mapping文档里面有点坑。 先直接上例子。 建立 index,把我们要自动补全的字段设置为 completion 类型 或者直接设置为子类型 PUT /blogs_completion/ {"mappings": {"tech": {"properties…...
GB28181协议实现源码Android源码
一、GB28181规范 尽管在国标GB28181中并没有对“平台”进行明确的定义,但在规范中却多次提到“系统平台”、“管理平台”等词汇,在具体项目中、网络上的交流学习中,平台概念也是无处不在。笔者认为,GB28181平台就是视频联网系统中的上级平台、中间平台或下级平台,用于实现…...
HNU工训中心: 三人表决器及八人抢答器实验报告
工训中心的牛马实验 三人表决器: 实验目的 1) 辨识数字IC功能说明。 2) 测试数字集成门电路,掌握输出故障排除、使用注意事项。 3) 掌握逻辑函数搭建三人表决器。 2.实验资源 HBE硬件基础电路实验箱、万用表 74LS00与非门、74LS10 三个3输入与非门…...
split()用法注意事项
split()用法注意事项 这个要注意有些特殊的分割符,比如.,这个表示匹配任何字符,如果在split()中调用的话,会将任何字符都分隔开,比如: String[] split "se.lll".split("."); System…...
centos7配置静态网络常见问题归纳
系列相似配置与安装软件问题整理与归纳文章目录 安装pymysql库_pymysql库安装_张小鱼༒的博客-CSDN博客 解决pip更新的代码_pip更新代码_张小鱼༒的博客-CSDN博客 python当中的第三方wxPython库的安装解答_pip install wx_张小鱼༒的博客-CSDN博客 spark里面配置jdk后的编程…...
产品经理修炼指南【01】
最近看了点产品经理的书,觉得产品经理这个位置和程序员不太一样,程序员唯一考核的标准就是能不能完成工作任务、是否能完成工作代码,但是产品经理貌似不一样,就像我给刘曼说的,产品经理上可以接领导,下可以…...
NCRE计算机等级考试Python真题(十一)
第十一套试题1、以下选项对于import保留字描述错误的是:A.import可以用于导入函数库或者库中的函数B.可以使用from jieba import lcut 引入 jieba库C.使用import jieba as jb,引入函数库jieba,取别名jbD.使用import jieba 引入jieba库正确答案…...
cglib代理解析
工作原理 使用 <dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>3.3.0</version></dependency>对类和接口分别进行代理 DemoService package com.fanqiechaodan.user.service;/*** author fa…...
GFD563A101 3BHE046836R0101
GFD563A101 3BHE046836R0101关于高端涂布机张力控制系统方案的介绍高端涂布机张力控制系统方案涂布机是将具有某种功效的胶,或者油墨类物质均匀粘连在塑料薄膜、铝箔、纺织品等表面的机械设备。本系统从放卷到收卷共采用七台变频器,其中收放卷采用闭环张…...
微网站免/百度首页关键词优化
2022 2.9 2.8晚 拿到文件先用ida分析一下,看看main: 这算是目前遇到的最完整的一个程序,猜数字的游戏,看到了很多get,可能是一个路径 再看一下system函数,之前看的题解里面这也是拿到shell的一个主要途径…...
三好街做网站公司/企业查询网
转载自:https://blog.csdn.net/weixin_41923961/article/details/81535185 侵删 CT三维重建主要有六种基本后处理方法 多层面重建(MPR) 最大密度投影(MIP) 表面阴影遮盖(SSD) 容积漫游技术&…...
网站排名优化效果/seo的搜索排名影响因素有哪些
1. Peek View 可以在不新建TAB的情况下快速查看、编辑一个函数的代码。 用法:在光标移至某个函数下,按下altF12。 然后在Peek窗口里可以继续按altF12。然后按ctrlalt-,或者ctrlalt就可以前后跳转。按ESC关闭Peek窗体。 这下就不需要来回跳转了…...
观澜专业做网站公司/百度竞价推广点击软件
match 最简单的一个match例子: 查询和"我的宝马多少马力"这个查询语句匹配的文档。 {"query": {"match": {"content" : {"query" : "我的宝马多少马力"}}} }上面的查询匹配就会进行分词,…...
用ps做网站导航/广州百度推广代理公司
在推荐系统简介中,我们给出了推荐系统的一般框架。很明显,推荐方法是整个推荐系统中最核心、最关键的部分,很大程度上决定了推荐系统性能的优劣。目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联规则推…...
wordpress当前文章tags/自动的网站设计制作
危言 对金融危机最普遍的官方解释是次贷问题,然而次贷总共不过几千亿,而美国政府救市资金早已到了万亿以上,为什么危机还是看不到头?有文章指出危机的根源是 金融机构采用“杠杆”交易;另一些专家指出金融危机的背后是…...