news 2026/4/12 10:47:28

图神经网络与pytorch

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
图神经网络与pytorch

目录

一、图神经网络架构pytorch

1.GCNConv

(1)、数学公式(标准 GCN)

(2)一个例子

(3)、解释一下

2.归一化层

(1).定义

(2).一个例子

3.GATConv

(1)、如何计算的

🕐计算原始注意力系数:

(2)、多头注意力机制


一、图神经网络架构pytorch

1.GCNConv

self.conv1 = GCNConv(in_dim, hidden_dim)

(1)、数学公式(标准 GCN)

(2)一个例子

图结构内容如下

邻接矩阵 A(不含自环)

计算归一化系数

假设每个节点 1 维特征(为了好算):

线性变换权重 W

先算 XW

之后有

(3)、解释一下

对于每个结点来说,他的来源包括自己以及和自己相连的其他结点的内容。归一化就是让自己的数据/根号下结点的度 + 其他数据/根号下结点的度。但是由于度越大,结合的数据越多,所以还要在外面进行归一化,/根号下结点的度。

第一步计算每个结点和权重矩阵处理后的结果

第二步是每个结点的数据与他相连的数据,归一化后求和

第三步是 对计算的结果进行最后的归一化

2.归一化层

self.norm1 = nn.LayerNorm(hidden_dim)

不跨节点、不跨 batch、不关心图大小

(1).定义

(2).一个例子

假设某个节点经过 GCNConv 后:

h_i = [100, 0.1, -3, 2, 50]

这会导致:

  • 后面的 ReLU / Linear 非常不稳定

  • PPO 的 value / logit 很容易炸

LayerNorm 会把它拉成:

h_i ≈ [1.2, -0.8, -1.1, -0.6, 1.3]

👉形状不变,尺度统一

3.GATConv

self.conv1 = GATConv(in_dim, hidden_dim, heads=heads, concat=True) # 注意:concat=True 表示将每个头的输出拼接

(1)、如何计算的

🕐计算原始注意力系数

🕑对所有邻居进行计算

对于节点i的每个邻居节点j,都需要计算上述的注意力系数。通过这种方式,我们可以得到所有邻居节点的注意力系数。注意这个邻居也包括他自己

🕑注意力系数的归一化

🕑加权聚合邻居特征

(2)、多头注意力机制

把上面的过程复制几次,那么每个结点都可以得到很多个维度一样的特征,把这个特征拼接在一起,就是多头注意力机制。

下图中一条颜色的线,就可以表示一个注意力头。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 1:59:53

基于SpringBoot的鸟博士微信小程序设计与实现(程序+文档+讲解)

课题介绍在鸟类科普与养护服务个性化需求升级的背景下,传统鸟类知识获取存在 “信息零散、咨询响应慢、养护指导不精准” 的痛点,基于 SpringBoot 微信小程序构建的鸟博士平台,适配鸟类爱好者、养鸟用户、鸟类专家等角色,实现科普…

作者头像 李华
网站建设 2026/4/11 7:01:21

27、Linux 用户、组管理与文件系统操作指南

Linux 用户、组管理与文件系统操作指南 1. 用户与组管理 在 Linux 系统中,用户和组的管理是系统管理的重要部分,它涉及到用户账户的创建、删除、修改,以及用户组的管理等操作。 1.1 理解 /etc/passwd 文件 /etc/passwd 文件是所有用户账户的列表,它是一个文本文件,任…

作者头像 李华
网站建设 2026/4/8 22:18:02

c语言中的函数

什么是函数 在计算机科学中,子程序是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。 ----------------------------------------------------------------…

作者头像 李华
网站建设 2026/4/10 20:21:27

langchain agent结构化输出

一.背景LangChain Agent 作为大模型驱动的自主决策智能体,核心价值在于通过工具调用与逻辑推理完成复杂任务,但原生 Agent 的输出多为非结构化自然语言文本 —— 这种 “自由文本” 形式在企业级应用中,难以满足数据存储、系统集成、自动化流…

作者头像 李华
网站建设 2026/4/10 14:48:55

44、高级Shell脚本编程与Linux DVD使用指南

高级Shell脚本编程与Linux DVD使用指南 1. 高级Shell脚本编程基础 在Shell脚本编程中,有两个强大的工具—— sed 和 awk ,它们能极大提升脚本的功能。 sed 是流编辑器, awk 是一种快速编程语言,二者常配合使用。下面通过具体示例展示它们的用法。 2. 尝试使用se…

作者头像 李华