torch_geometric -- Pooling Layers

news2024/12/26 13:20:57

torch_geometric – Pooling Layers

global_add_pool

通过在节点维度上添加节点特征来返回批量图级输出,因此对于单个图
它的输出由下式计算

from torch_geometric.nn import global_mean_pool, global_max_pool, global_add_pool
import torch as th

f = [[1,2,3,4,5], [6,7,8,9,10], [0,0,1,1,1],[2,2,2,0,0],[3,0,3,0,3]]
batch = [0, 0, 0, 1, 1]

f_t = th.tensor(f)
batch_t = th.tensor(batch)

result_add = global_add_pool(f_t, batch_t)
print(result_add)
-----------------------------------
tensor([[ 7,  9, 12, 14, 16],
        [ 5,  2,  5,  0,  3]])

global_mean_pool

通过在节点维度上平均节点特征返回批量图级输出,因此对于单个图
它的输出由下式计算

from torch_geometric.nn import global_mean_pool, global_max_pool, global_add_pool
import torch as th


f = [[1,2,3,4,5], [6,7,8,9,10], [0,0,1,1,1],[2,2,2,0,0],[3,0,3,0,3]]
batch = [0, 0, 0, 1, 1]

f_t = th.tensor(f)
batch_t = th.tensor(batch)

result_mean = global_mean_pool(f_t, batch_t)
print(result_mean)
------------------------------
tensor([[2, 3, 4, 4, 5],
        [2, 1, 2, 0, 1]])

global_max_pool

通过在节点维度上获取通道方面的最大值来返回批处理图级输出,因此对于单个图
它的输出由下式计算

from torch_geometric.nn import global_mean_pool, global_max_pool, global_add_pool
import torch as th


f = [[1,2,3,4,5], [6,7,8,9,10], [0,0,1,1,1],[2,2,2,0,0],[3,0,3,0,3]]
batch = [0, 0, 0, 1, 1]

f_t = th.tensor(f)
batch_t = th.tensor(batch)

result_max = global_max_pool(f_t, batch_t)
print(result_max)
-------------------------------------------
tensor([[ 6,  7,  8,  9, 10],
        [ 3,  2,  3,  0,  3]])

TopKPooling

来自“Graph U-Nets”、“Towards Sparse Hierarchical Graph Classifiers”和“Understanding Attention and Generalization in Graph Neural Networks”论文的 pooling operator

from torch_geometric.nn import TopKPooling
import torch as th

f = [[1,2,3,4,5], [6,7,8,9,10], [0,0,1,1,1], [2,2,2,0,0], [3,0,3,0,3]]
edge_index = [[0,1],[2,0],[3,4]]
batch = [0, 0, 0, 1, 1]

edge_index_t = th.tensor(edge_index)
f_t = th.tensor(f)
batch_t = th.tensor(batch)

topkp = TopKPooling(in_channels=5)
reslut = topkp(x = f_t, edge_index=edge_index_t, batch=batch_t)
print(reslut)
------------------------------------------------------------------
(tensor([[5.9999, 6.9998, 7.9998, 8.9998, 9.9998],
        [0.9965, 1.9930, 2.9895, 3.9860, 4.9825],
        [2.9566, 0.0000, 2.9566, 0.0000, 2.9566]], grad_fn=<MulBackward0>), tensor([[0],
        [1]]), None, tensor([0, 0, 1]), tensor([1, 0, 4]), tensor([1.0000, 0.9965, 0.9855], grad_fn=<IndexBackward0>))

SAGPooling

来自“Self-Attention Graph Pooling”和“Understanding Attention and Generalization in Graph Neural Networks”论文的self-attention pooling算子

EdgePooling

“Towards Graph Pooling by Edge Contraction”和“Edge Contraction Pooling for Graph Neural Networks”论文中的边池运算符。

ASAPooling

“ASAP:Adaptive Structure Aware Pooling for Learning Hierarchical Graph Representations”论文中的 Adaptive Structure Aware Pooling 运算符。

PANPooling

“Path Integral Based Convolution and Pooling for Graph Neural Networks”论文中的基于路径积分的池化算子。

MemPooling

来自“Memory-Based Graph Networks”论文的基于内存的池化层,它学习基于软聚类分配的粗化图表示

max_pool

torch_geometric.data.Data根据 中定义的聚类,汇集并粗化对象给出的图cluster。

avg_pool

torch_geometric.data.Data根据 中定义的聚类,汇集并粗化对象给出的图cluster。

max_pool_x

Max-Pools 节点特征根据中定义的聚类cluster。

max_pool_neighbor_x

最大池化相邻节点特征,其中每个特征data.x都被中心节点及其邻居中具有最大值的特征值替换。

avg_pool_x

平均池节点特征根据中定义的聚类cluster。

avg_pool_neighbor_x

平均汇集相邻节点特征,其中每个特征data.x都被中心节点及其邻居的平均特征值替换。

graclus

来自“没有特征向量的加权图切割:多级方法”论文中的一种贪婪聚类算法,该算法选择一个未标记的顶点并将其与其未标记的邻居之一匹配(最大化其边缘权重)。

voxel_grid

来自Graphs论文中卷积网络中的动态边缘条件滤波器的体素网格池,它在点云上覆盖用户定义大小的规则网格,并将所有点聚集在同一体素内。

fps

“PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space”论文中的一种采样算法,该算法针对其余点迭代采样最远的点。

knn

查找kx中最近点中y的每个元素。

knn_graph

计算图形边缘到最近的k点。

radius

在 distance 内的y所有点中查找每个元素。xr

radius_graph

计算给定距离内所有点的图边。

nearest

x将距离y中给定查询点最近的点聚集在一起。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/170855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Wider Face+YOLOV8人脸检测

YOLO系列的算法更新实在太快了&#xff0c;前些天刚学习完YOLOV7&#xff0c;YOLOV8就出来了。今天先理解模型的训练过程&#xff0c;后续再学习V8的网络结构等细节。YOLOV8源码链接&#xff1a;https://github.com/ultralytics/ultralytics1 数据格式转换Wider Face数据格式转…

java -- 14 多态、内部类、常用API

自动类型转换&#xff1a;多态下引用数据类型的类型转换强制类型转换案例&#xff1a;定义usb接口&#xff1a;定义鼠标和键盘的usb实现类&#xff0c;并有自己特有的方法&#xff0c;重写usb接口的方法&#xff0c;里面穿插了多态创建电脑类&#xff0c;把usb接口揉和进去&…

如何改变视频的MD5值?一分钟让你学会操作

肯定很多不是从事自媒体的朋友对MD5不是很熟悉&#xff0c;但其实它类似于人的身份证&#xff0c;只不过我们的身份证是一串数字&#xff0c;而它则是视频的后台编码&#xff0c;所以这也是一些平台用MD5来判断视频是否重复的依据。那么有人会问了&#xff0c;既然MD5这么特殊&…

Java实战:使用Hutool中的MailUtil实现邮件的发送

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️荣誉&#xff1a; CSDN博客专家、数据库优质创作者&#x1f3c6;&…

EasyExcel的导入导出使用

1、说明 EasyExcel是阿里出的一款基于Java的、快速、简洁、解决大文件内存溢出的处理Excel的开源工具&#xff0c;本文主要是使用这个工具对Excel导入导出进行讲解。 官网&#xff1a; https://easyexcel.opensource.alibaba.com/github&#xff1a; https://github.com/alib…

达梦主备之备库失联后在线恢复加入集群

一、主库故障重启&#xff08;备库接管前重启&#xff09; 主库故障后立即重启&#xff0c;此时主库的守护进程变成 Startup 状态&#xff0c;重新进入守护进程的 启动流程&#xff0c;将数据一致的备库归档设置为有效状态&#xff0c;其余备库归档设置成无效状态&#xff0c;并…

一些工具软件的使用

文章目录010 Editor设置16进制编辑时每行显示的字节数使用列模式编辑VS Code基础操作定义快捷键配置导出/导入列模式将文件中的tab键转换为空格关闭插件自动更新博文链接Beyond Compare文件内容相同依然显示差异过滤文件或文件夹Excel使用组合&#xff0c;进行行、列的折叠使用…

【DX-BT24蓝牙模块-AT命令与手机透传教程】

【DX-BT24蓝牙模块-AT命令与手机透传教程】1. 前言1.1.串口基本参数1.2.AT命令模式和透传模式1.3.模块数据吞吐量2. 接线2.1 模块线序定义2.2 相关AT命令详解2.2.1 命令格式说明2.2.2 回应格式说明2.2.3 AT命令举例说明3. AT命令详解3.1 基础指令3.2 AT指令测试3.3 手机测试4. …

英华特在创业板提交注册:拟募资约5亿元,股权结构较为分散

近日&#xff0c;苏州英华特涡旋技术股份有限公司&#xff08;下称“英华特”&#xff09;在上海证券交易所递交注册。据贝多财经了解&#xff0c;英华特的上市申请于2021年6月30日获得受理&#xff0c;2022年8月25日获得创业板上市委会议通过。 本次冲刺上市&#xff0c;英华特…

智合同丨你还在为填写合同台账犯愁吗?

最近有朋友问我有没有什么智能化手段处理合同台账问题&#xff1f;对方表示合同台账管理实在是太麻烦了&#xff0c;工作量大&#xff0c;占用时间多。答案肯定是有的&#xff0c;那么首先我们来了解下合同台账。合同台账一般指合同台帐&#xff0c;包括合同登记台帐、合同检查…

Solidity 中的数学(第 1 部分:数字)

本文开启了一系列关于在 Solidity 中进行数学运算的文章。第一个要讨论的话题是&#xff1a;数字。 介绍 以太坊是一个可编程的区块链&#xff0c;其功能可以通过将称为智能合约的可执行代码片段发布到区块链本身来扩展。这将以太坊与第一代区块链区分开来&#xff0c;在第一代…

PointNet.pytorch点云三维深度学习论文与代码复现

PointNet.pytorch1. 概要1.1 文章1.2 点云和三维深度学习&#xff0c;PointNet 网络结构1.3 复现说明2. 代码2.1 代码逻辑2.2 思路详解3. 解析组会2023.1.18远程arcivdailyonedb1. 概要 1.1 文章 链接: 论文 1.2 点云和三维深度学习&#xff0c;PointNet 网络结构 链接: 三…

程序员必备素质:代码整洁之道

本次分享的内容是《代码整洁之道》&#xff0c;书中是以现实案例&#xff0c;以讲故事形式来总结归纳问题&#xff0c;并给出解决方案&#xff0c;很容易与我们产生共鸣。文中会有大量书中内容摘抄&#xff0c;都是个人认为很值得分享的内容。当然&#xff0c;也会有个人感悟&a…

【C++】从0到1入门C++编程学习笔记 - 基础入门篇:C++初识

文章目录一、第一个C程序1.1 创建项目1.2 创建文件1.3 编写代码1.4 运行程序二、注释三、变量四、常量五、关键字六、标识符命名规则一、第一个C程序 编写一个C程序总共分为4个步骤 创建项目创建文件编写代码运行程序 1.1 创建项目 Visual Studio是我们用来编写C程序的主要…

【C语言课程设计】通讯录(2.0版本)

前言 在前面的博客中&#xff0c;我们已经了解了通讯录的基本写法。当然那个通讯录是不够完善的。我们本小节对前面的通讯录做一次小升级&#xff0c;添加动态增容模块与利用枚举来优化选择语句 【C语言课程设计】通讯录&#xff08;1.0版本&#xff09;_青色_忘川的博客-CSDN博…

JVM-内存模型详解

JVM 把内存分为若干个不同的区域&#xff0c;这些区域有些是线程私有的&#xff0c;有些则是线程共享的&#xff0c;Java 内存区域也叫做运行时数据区&#xff0c;它的具体划分如下&#xff1a; 虚拟机栈 Java 虚拟机栈是线程私有的数据区&#xff0c;Java 虚拟机栈的生命周期…

word查看技巧:如何快速找到文档的修改痕迹

不知道大家在工作中有没有遇到过这类的工作场景&#xff1a;当初步拟好一份合作协议或是项目策划书后&#xff0c;发给老板或其他同事审阅和修订&#xff0c;通常会不断地来回修改文档。此时&#xff0c;如果你想要查看文档哪里被修改过&#xff1f;你会怎么操作&#xff1f;很…

SpringBoot集成Elasticsearch7.4 实战(二)

1、前言本篇文章主要讲的是:在Springboot环境下&#xff0c;利用JAVA环境操作索引,集成SpringBoot等相关知识2. SpringBoot集成开发工具&#xff0c;这里选择的是IDEA 2019.2&#xff0c;构建Maven工程等一堆通用操作&#xff0c;不清楚的自行百度。2.1. POM配置我这边选择 ela…

协程应用——aiohttp异步爬虫实战

aiohttp异步爬虫实战1. 案例介绍2. 准备工作3. 页面分析4. 实现思路5. 基本配置6. 爬取列表页7. 爬取详情页8. 总结1. 案例介绍 本例要爬取的网站是https://spa5.scrape.center/,数据量相对大&#xff0c;所以用到了异步爬虫&#xff0c;主要学习这种方法是如何提高效率的。网…

Maven学习(三):纯手撸一个Maven项目

纯手撸一个Maven项目一、创建Maven工程目录二、Maven项目构建命令三、插件创建工程1、创建java工程2、创建web工程3、对比java工程和web工程区别一、创建Maven工程目录 按照下图所示的结构创建项目所需文件夹&#xff1a; 在Demo.java文件内输入以下代码&#xff1a; package…