自我关注图汇聚:SAGPool

自我关注图汇聚(Self-Attention Graph Pooling,简称SAGPool)是一种用于图神经网络的汇聚操作。它利用自注意力机制,根据节点之间的相似度来选择并保留最重要的节点,从而实现图的降维和汇聚。本文将详细介绍SAGPool的原理,并提供相应的源代码示例。

SAGPool的原理

SAGPool的核心思想是利用自注意力机制来计算节点之间的相似度,并根据相似度选择重要的节点进行汇聚。下面是SAGPool的主要步骤:

  1. 输入:给定一个图G,其中包含节点集合V和边集合E。

  2. 特征提取:对于每个节点v∈V,计算其特征表示x(v)。

  3. 相似度计算:使用自注意力机制计算节点之间的相似度。具体而言,对于每个节点v∈V,计算其与其他节点之间的相似度得分,可以使用注意力机制中的加权点积注意力来计算。

  4. 节点选择:根据节点之间的相似度得分,选择一部分重要的节点。可以使用Top-K操作或基于阈值的筛选方法来选择节点。

  5. 节点汇聚:将选择的节点进行汇聚,得到新的图。可以采用一些常用的汇聚方法,例如将选定的节点作为新图的节点集合,保留原图中的边或根据一些规则建立新的边。

  6. 重复步骤2到步骤5,直到达到所需的图的规模或达到汇聚的终止条件。

SAGPool的源代码示例

下面是一个简单的示例代码,演示了如何在PyTorch中实现SAGPool:

【论文阅读-SAGPool】Self-Attention Graph Pooling 论文地址:https://arxiv.org/abs/1904.08082 来源:ICML 2019 本篇论文主要是改变了Topk的得分方式,也是本文的创新之处。作者认为以往的得分函数过于简单,没有考虑到图的拓扑信息,认为谱域卷积同时考虑了图的拓扑信息和节点信息,故用谱域卷积的注意力来替换。其他部分基本是参考Graph U-Net论文提出的方法。 模型架构 图2左图是全局池化结构,右图是分层池化结构。 全局池化结构由三个图卷积层组成,每层的输出被连接起来。节点特征在池化层之后的readout层中聚合。然后 阅读详情

相关推荐

池化方法总结(Pooling)

在卷积神经网络中,我们经常会碰到池化操作,而池化层往往在卷积层后面,通过池化来降低卷积层输出的特征向量,同时改善结果(不易出现过拟合)。 为什么可以通过降低维度呢? 因为图像具有一种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适用。因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值

Daniel_djf的专栏 6万+

【论文阅读-GSAPool】Structure-Feature based Graph Self-adaptive Pooling

论文地址:https://arxiv.org/pdf/2002.00848.pdf 代码地址:https://github.com/psp3dcg/GSAPool 来源:WWW2020 近年来,提出了各种处理Graph的方法。但是,这些方法大多侧重于节点特征的聚合,而很少关注图池化。而现有的基于top-k的图池化方法也存在一些问题。首先,为了构建池图拓扑,目前的top-k选择方法仅从单个角度评估节点的重要性,过于简单和客观。其次,在池化过程中,未选择节点的特征信息直接丢失,不可避免地导致大量图特征信息丢失。

weixin_42534393的博客 1916

深度学习之QLoRA原理详解及Pytorch实现

【代码】深度学习之QLoRA原理详解及Pytorch实现。

yumiwangzi30的博客 212

PyTorch、CPU、GPU 与 CUDA 深度解析:一次张量加法背后的四层世界

本文厘清PyTorch、CPU、GPU与CUDA的层级关系:PyTorch是编程接口,CPU负责控制与调度,CUDA是让CPU指挥GPU的并行编程平台,GPU则是实际执行计算的加速器。四者非并列,而是分层协作。以x + y为例,从Python前端到算子分发、CUDA运行时,最终在GPU硬件上执行。关键认知包括:GPU并非万能加速器,小任务因开销大反而更慢;.to('cuda')仅搬运数据,不改变代码逻辑;算子性能受算术强度与内存带宽制约。理解此链路是优化深度学习性能的前提。

reset2021的博客 262

【图神经网络论文整理】(五)—— Self-Attention Graph Pooling:SAGPool

之后会根据学习出的Z也就是注意力分数矩阵进行池化操作,这时会定义一个超参数k,代表保留节点的比率,那么【kN】就是最终需要保存节点的个数,我们会根据注意力分数进行排序,保留分数最大的前【kN】个节点。但是上面做法也会存在局限性,它单单只考虑了图节点特征,并没有考虑图的拓扑结构,为了进一步改进,作者提出了SAGPool,该方法可以同时使用节点特征和图的拓扑结构产生更加合理的图的层次表示。为了改进池化效果,本文提出了一种新的池化方式,基于自注意力机制方式,这种方式可以同时考虑节点特征以及图拓扑结构。

优快云 精品推荐 1231

Pytorch+PyG实现SAGPool实现图分类

本专栏整理了《图神经网络代码实战》,内包含了不同图神经网络的相关代码实现(PyG以及自实现),理论与实践相结合,如GCN、GAT、GraphSAGE等经典图网络,每一个代码实例都附带有完整的代码。

优快云 精品推荐 1741

C#中的Chart控件——当数据源很多时可以显示进度条拉动观察,也可以记录到后台文本详细对照

C#中的Chart控件——当数据源很多时可以显示进度条拉动观察,也可以记录到后台文本详细对照下面进行详细步骤说明,感兴趣的同学可以看一下: 1简单示例(一条线): 2.数据源随着时间不断变化,进度条变化 。多条线: 3.看在整段时期内的数据大体图(消去或出现)进度条: 4.后台将时刻记录变化记录到一个txt文本里以供详细校验: 话不多说上码: using System; using Sys...

帅boy的博客 4308

TP4056锂电池充电电路设计原理与工程实践

锂离子电池充电管理是嵌入式电源系统的核心基础技术,其本质是通过恒流恒压(CC/CV)控制策略,匹配电池电化学特性以实现安全、高效、长寿命充放电。TP4056作为典型线性充电IC,以精简外围实现预充、恒流、恒压及自动截止全周期管理,但受限于线性拓扑的热耗散特性,必须协同散热设计、电阻精度选型与PCB布局进行系统级优化。该方案广泛应用于STM32智能小车、便携传感器节点等3.7V单节锂电供电场景,兼顾成本、可靠性与工程可实施性,是入门嵌入式硬件电源设计的关键实践范例。

weixin_36064575的博客 219

半导体设备上位机开发:我的经验与新人指导

半导体设备上位机开发是一项复杂而富有挑战性的工作,需要扎实的技术基础和丰富的经验。如果你对半导体设备上位机开发感兴趣,欢迎随时与我交流,我会尽力帮助你!

qq_43518667的博客 2729

CentOS7环境下搭建 rsyslog 日志服务器,rsyslog+loganalyzer

1.系统环境部署 ip hostname 192.168.200.182 web 192.168.200.184 rsyslog-mysql 关闭防火墙、selinux、下载epel源 [root@web ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/f

sehn_的博客 3754

ITK-snap医学图像标注方法(超级详细)——保姆级

医学3D图像标注方法,非常详细,保姆级

jialiyk的博客 3万+

【AI学习笔记】Coze平台实现将Excel文档批量导入数据库全过程

通过Coze平台实现将Excel文档批量导入数据库的全流程,包括B站现有参考教程全方位解读、自己实操的一些BUG解决过程,以及一些疑难问题的探索。

bailichen800的博客 8825

智能硬件产品:做好一款电子硬件产品,工具必不可少

上到战略规划,中至运营策略,下至人性洞察,。最初做产品时,笔者从一开始就陷入到了对工具的痴迷,包括:PS、AutoCAD、PROE、犀牛、Axure、Keyshot、Altium……大概将 2 个多月的时间和精力都消耗在了学习使用工具上。通过工具的运用也确实提高了工作效率,在仅有创意的前提下通过灵活运用工具,一年内便成功申请了多个实用新型专利、设计了多款产品的高保真原型图等。正在上传…重新上传取消。

产品线负责人 1443

【电动汽车再生制动控制技术(万字长文,图文并茂)】

电动汽车再生制动的基本原理是:通过具有可逆作用的电动机/发电机来实现电动汽车动能和电能的转化。在汽车减速或制动时,可逆电机以发电机形式工作,汽车行驶的动能带动发电机将汽车动能转化为电能并储存在储能器(蓄电池或超级电容器)中;在汽车起动或加速时,可逆电机以电动机形式工作,将储存在储能器中的电能转化为机械能给汽车。这对于改善汽车的能量利用效率,延长电动汽车的行驶距离是至关重要的。

优快云-新能源汽车研发测试专业博主 1578

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 解决 Docker 中 Python 执行文件时出现无法打开文件 ‘/src/main.py‘ 的问题
下一篇: 使用CycleGAN实现艺术作品的风格迁移
普通网友
博客等级 码龄3年 60粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值