©作者 | 陈萍、杜伟

来源 | 机器之心

当前最流行和广泛使用的 GNN 库 PyG(PyTorch Geometric)现在出 2.0 版本了,新版本提供了全面的异构图支持、GraphGam 以及很多其他特性,这一系列改进,为使用者带来了更好的用户体验。

PyTorch Geometric(PyG)是一个构建于 PyTorch 之上的库,用来为一系列与结构化数据相关的应用编写和训练图神经网络(GNN)。PyG 对机器学习研究者以及机器学习工具包的首次使用者都很友好。

就其特征和功能而言,PyG 具有易用和统一的 API,用户花费更少的时间在实现和运行图神经网络的底层机制上,只需要 10 至 20 行代码就可以训练自定义 GNN 模型。PyG 涵盖了大量的 SOTA GNN 架构以及训练和可扩展流程,并且易于扩展以匹配用户自己的特定用例或进行自己的 GNN 研究。

此外,PyG 中的全新 GraphGym 使得用户可以轻松地复现 GNN 实验,执行和分析数千个 GNN 实验,并将自定义模块嵌入到 GNN 学习 pipeline 中。

近日,PyG 核心领导者(Core lead)Matthias Fey 宣布 PyG 2.0 版本来了!新版本提供了全面的异构图支持、GraphGam 以及很多其他特性。

PyG 2.0 详情地址:https://github.com/pyg-team/pytorch_geometric/releases/tag/2.0.0

PyG 2.0 新特性

PyG 2.0 是一个新的版本,提供了复杂的异构图支持、GraphGym 集成以及其他新特性。

PyG 2.0 中提供了完全的异构图支持。异构图支持包括数据存储层的完整重写(同时保持向后兼容性)、异构图转换、通过邻采样的关系型数据加载例程,以及一整套异构 GNN 模型 / 示例。

突出亮点

异构图存储:异构图现在可以存储在它们自己的专用 data.HeteroData 类中。

from torch_geometric.data import HeteroData
data = HeteroData()
# Create two node types "paper" and "author" holding a single feature matrix:data['paper'].x = torch.randn(num_papers, num_paper_features)
data['author'].x = torch.randn(num_authors, num_authors_features)
# Create an edge type ("paper", "written_by", "author") holding its graph connectivity:
data['paper', 'written_by', 'author'].edge_index = ...  # [2, num_edges]

异构 Mini-Batch 加载:异构图可以分别通过 loader.DataLoader 和 loader.NextorLoader 对许多小的、单个的巨大图进行转化,转换成 mini-batches。这些 loaders 现在可以处理同构图和异构图:

from torch_geometric.loader import DataLoader
loader = DataLoader(heterogeneous_graph_dataset, batch_size=32, shuffle=True)
from torch_geometric.loader import NeighborLoader
loader = NeighborLoader(heterogeneous_graph, num_neighbors=[30, 30], batch_size=128,input_nodes=('paper', data['paper'].train_mask), shuffle=True)

异构图神经网络:异构 GNN 现在可以通过 nn.to_hetero、nn.to_hetero_with_bases 从同构 GNN 轻松创建。这些进程采用现有的 GNN 模型并复制其消息功能,以考虑不同的节点和边缘类型:

from torch_geometric.nn import SAGEConv, to_heteroclass GNN(torch.nn.Module):def __init__(hidden_channels, out_channels):super().__init__()self.conv1 = SAGEConv((-1, -1), hidden_channels)self.conv2 = SAGEConv((-1, -1), out_channels)def forward(self, x, edge_index):x = self.conv1(x, edge_index).relu()x = self.conv2(x, edge_index)return xmodel = GNN(hidden_channels=64, out_channels=dataset.num_classes)
model = to_hetero(model, data.metadata(), aggr='sum')

使用 GraphGym 管理实验

PyG 2.0 现在通过 torch_geometric.graphgym 正式支持 GraphGym。总的来说,GraphGym 是一个平台,用于通过高度模块化的 pipeline 从配置文件中设计和评估图神经网络:

  • GraphGym 是开始学习标准化 GNN 实现和评估的最佳平台;

  • GraphGym 提供了一个简单的接口来并行尝试数千个 GNN 架构,以找到适合特定任务的最佳设计;

  • GraphGym 可轻松进行超参数搜索并可视化哪些设计选择更好。

重大改变

datasets.AMiner 数据集现在返回 data.HeteroData 对象;transforms.AddTrainValTestMask 已被替换为 transforms.RandomNodeSplit;由于 data.Data 的存储布局发生了显着变化以支持异构图,因此需要通过删除 root/processed 文件夹来重新处理已处理的数据集。

此外,data.Data.__cat_dim__ 、 data.Data.__inc__现在需要额外的参数输入:

def __cat_dim__(self, key, value, *args, **kwargs):pass
def __inc__(self, key, value, *args, **kwargs):pass

如果你修改了自定义 data.Data 对象中的__cat_dim__或__inc__ ,请确保应用上述更改。

了解更多变化,请参考原项目。

核心团队成员

PyG 核心团队共有 6 位成员,包括多特蒙德工业大学四年级图机器学习博士生 Matthias Fey、多特蒙德工业大学博士生 Jan Eric Lenssen(核心贡献者)和图网络领域大牛 & 斯坦福计算机科学副教授 Jure Leskovec(担任顾问)。

从左至右依次为 Matthias Fey、Jan Eric Lenssen 和 Jure Leskovec。

此外还有三位华人成员,分别是斯坦福大学计算机科学四年级博士生尤佳轩(Jiaxuan You,核心领导者)、斯坦福大学计算机科学博士生 Rex Ying(核心贡献者,他将于 2022 年加入耶鲁大学担任助理教授)和卡内基梅隆大学 - 汉斯学院三年级博士生赵越(Yue Zhao,核心贡献者)。

从左至右依次为尤佳轩、Rex Ying 和赵越。

日前,赵越在知乎分享了自己参与 PyG 2.0 版本设计与升级过程中的心得体会,感兴趣的读者可以参考阅读。

知乎链接:https://www.zhihu.com/pin/1420674585365196800

参考链接:

http://www.pyg.org/

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

支持异构图、集成GraphGym,超好用的图神经网络库PyG更新2.0版本相关推荐

  1. 【图神经网络】从0到1使用PyG手把手创建异构图

    从0到1用PyG创建异构图 异构图 创建异构图 电影评分数据集MovieLens 建立二分图数据集 转换为可训练的数据集 建立异构图神经网络 以OGB数据集为例 HeteroData中常用的函数 将简 ...

  2. 基于MQTT协议的WZ指令开发V3.0版本支持onenet

    title: 基于MQTT协议的WZ指令开发V3.0版本支持onenet tags: WZ指令 date: 2019-02-18 10:53:00 视频讲解:(V3.0版本)-https://www. ...

  3. 知识图谱-生物信息学-医学顶刊论文(Briefings in Bioinformatics-2022):基于异构图GCN和GAT的DTI预测

    (2022.4.16)Briefings-DTI-HETA:基于异构图GCN和GAT的DTI预测 目录 (2022.4.16)Briefings-DTI-HETA:基于异构图GCN和GAT的DTI预测 ...

  4. 医院集成平台超融合基础架构转型方案

    内容导读 近年来,在电子病历应用水平评级要求以及医院在不同业务间实现协同等多种因素的推动下,集成平台成为各大型医院信息化建设中重点的项目. 本文将围绕医院集成平台的资源需求以及其对 IT 基础架构的要 ...

  5. React-native之友盟(UMeng)推送集成(超详细)(android版)----------小白的天堂

    React-native之友盟(UMeng)推送集成(超详细)(android版) 集成环境: React-native: 0.61.5 Umeng push sdk:6.0.5 测试环境: Andr ...

  6. WWW 2020 开源论文 | 异构图Transformer

    论文标题:Heterogeneous Graph Transformer 论文来源:WWW 2020 论文链接:https://arxiv.org/pdf/2003.01332.pdf 代码链接:ht ...

  7. 异构图-GTN(Graph Transformer Networks)

    上一节的HAN表示异构图的Attention Network,通过手动设置Meta-path,然后聚合不同Meta-path下的节点attention,学到节点最终的表示.但是这个方法是手动选择Met ...

  8. 论文浅尝 | 异构图 Transformer

    笔记整理:许泽众,浙江大学博士在读 论文链接:https://arxiv.org/abs/2003.01332 本文主要提出一种处理异构图的方法,所谓异构图(Heterogeneous graph)是 ...

  9. android微信分享怎么自定义样式,微信更新!主题皮肤终于支持自定义了,样式超多有个性...

    原标题:微信更新!主题皮肤终于支持自定义了,样式超多有个性 今日分享:微信主题 适用系统:安卓 微信最近又更新了,很多网友吐槽安装包越来越大,感觉已经不再是以前"小而美"的样子了. ...

最新文章

  1. Aurora 8B/10B、PCIe 2.0、SRIO 2.0三种协议比较
  2. 无关程序,一点感言.
  3. python处理数据的包_在Python中利用Into包整洁地进行数据迁移的教程
  4. 说说如何使用 Ant 把文件推送到 Linux
  5. 中等数学类杂志投稿信箱
  6. OSS网页上传和断点续传(OSS配置篇)
  7. d0...while循环结构讲解
  8. 铭飞MCMS内容管理系统完整开源版J2EE代码
  9. 十八道海量数据处理面试题与相关知识讲解
  10. android adb 刷机工具,ADB 工具 ADB 工具刷机-完美教程资讯
  11. 基于H5的移动端APP开发框架
  12. JAVA查搜索文件内容
  13. 【html5期末大作业】基于HTML仿QQ音乐官网网站
  14. linux crontab清理脚本,crontab定时清理日志
  15. cisco路由器基本实验之五 配置Loopback接口进行远程登录 (Boson NetSim)
  16. 除法的向上取整和向下取整
  17. a上标3下标6算法_A上标3下标6算法
  18. C# 中 KeyPress 、KeyDown 和KeyPress的详细区别[转]
  19. 望远大光圈拍风景的魅力--不破不立系列(1)
  20. 使用 rsync 服务(二)

热门文章

  1. 直流电源端口雷击或瞬态浪涌防护设计方案图详解
  2. c 对一个mysql数据库进行操作_C/C++对MySQL操作
  3. Android 拦截WebView请求,并加入或修改参数(GET)
  4. python time模块详解
  5. Fiori 出试(WEBIDE平台)day1
  6. 从统计局抓取2016年最新的全国区县数据!!
  7. C# 图片文件文本string格式 传输问题
  8. 错误提示[__NSArrayI addObjectsFromArray:]: unrecognized selector的原因和解决方法
  9. 百度:病种类贴吧全面停止商业合作
  10. html应用中心模板,HTML5--应用网页模板