图神经网络与pytorch

目录

一、图神经网络架构pytorch

1.GCNConv

[(1)、数学公式(标准 GCN)](#(1)、数学公式(标准 GCN))

(2)一个例子

(3)、解释一下

2.归一化层

(1).定义

(2).一个例子

3.GATConv

(1)、如何计算的

🕐计算原始注意力系数:

(2)、多头注意力机制


一、图神经网络架构pytorch

1.GCNConv

python 复制代码
        self.conv1 = GCNConv(in_dim, hidden_dim)

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

(2)一个例子

图结构内容如下

邻接矩阵 A(不含自环)

计算归一化系数

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

线性变换权重 W

先算 XW

之后有

(3)、解释一下

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

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

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

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

2.归一化层

python 复制代码
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

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

(1)、如何计算的

🕐计算原始注意力系数

🕑对所有邻居进行计算

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

🕑注意力系数的归一化

🕑加权聚合邻居特征

(2)、多头注意力机制

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

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

相关推荐
回眸&啤酒鸭13 小时前
【回眸】Minicart 电商购物车核心功能落地指南
人工智能
一隅论数智13 小时前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
AI的探索之旅13 小时前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
AlbertZein13 小时前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
LaughingZhu13 小时前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
美狐美颜SDK开放平台13 小时前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
wukangjupingbb14 小时前
智能网联汽车安全能力框架
人工智能
风合星语14 小时前
2026 具身智能技术实战(一):VLA 到底怎么控制机器人?——用 LeRobot 跑通 SmolVLA 推理
pytorch·机器人·具身智能·vla·lerobot·smolvla
龙亘川14 小时前
明月照湾区,智启新赛道:从顶流文旅IP盛会看智慧文旅升级路径
人工智能·智慧城市·开源软件·数据可视化