图神经网络与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)、多头注意力机制

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

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

相关推荐
模型启动机8 小时前
微软确认:Windows 11 AI 智能体访问用户文件前会先请求许可
人工智能·microsoft·ai·大模型
Coovally AI模型快速验证8 小时前
复杂工业场景如何实现3D实例与部件一体化分割?多视角贝叶斯融合的分层图像引导框
人工智能·深度学习·计算机视觉·3d·语言模型·机器人
易连EDI—EasyLink8 小时前
EDI数据交换2026年展望:洞察2026年EDI数据交换的新范式
大数据·人工智能·edi·电子数据交换·as2
PHOSKEY8 小时前
3D工业相机提升晶圆承载部件工艺质量
人工智能
是Yu欸8 小时前
【征文计划】智旅无界:Rokid智能眼镜赋能下一代个性化旅游体验开发指南
人工智能·旅游·个性化·智能眼镜·rokid
丝斯20118 小时前
AI学习笔记整理(33)—— 视觉Transformer (ViT)与自注意力机制
人工智能·笔记·学习
2401_841495648 小时前
【自然语言处理】中文文本字频统计与交互式可视化工具
人工智能·python·自然语言处理·多线程·分块读取·文本分析·字频统计
十铭忘8 小时前
SAM2跟踪的理解8——mask decoder
人工智能·计算机视觉
五度易链-区域产业数字化管理平台8 小时前
五度易链产业大脑:从数据融合到智能决策的技术实践
大数据·人工智能