一个基于PyTorch的几何深度学习扩展库,为GNN的研究和应用再添利器

网友投稿 299 2022-11-14

一个基于PyTorch的几何深度学习扩展库,为GNN的研究和应用再添利器

研究者主要将深度学习方法应用于欧氏结构数据(Euclidean domains),但在许多重要的应用领域,如生物学、物理学、网络科学、推荐系统和计算机图形学,可能不得不处理非欧式结构的数据,比如图和流形。

直到最近,深度学习在这些特定领域的采用一直很滞后,主要是因为数据的非欧氏结构性质使得基本操作(例如卷积)的定义相当困难。在这个意义上,几何深度学习将深度学习技术扩展到了图/流形结构数据。

图神经网络(GNN)是近年发展起来的一个很有前景的深度学习方向,也是一种强大的图、点云和流形表示学习方法。

近日,德国多特蒙德工业大学的研究者两位Matthias Fey和Jan E. Lenssen,提出了一个基于PyTorch的几何深度学习扩展库PyTorch Geometric (PyG),为GNN的研究和应用再添利器。

论文:

Yann Lecun也热情推荐了这个工作,称赞它是一个快速、美观的PyTorch库,用于几何深度学习(图和其他不规则结构的神经网络)。

PyG已经在MIT许可下发布,可以在GitHub上获取。里面有完整的文档说明,并提供了作为起点的教程和示例。

地址:

PyTorch Geometry:基于PyTorch的几何深度学习扩展库

PyTorch Geometry是一个基于PyTorch的几何深度学习扩展库,用于不规则结构输入数据,例如图(graphs)、点云(point clouds)和流形(manifolds)。

PyTorch Geometry包含了各种针对图形和其他不规则结构的深度学习方法,也称为几何深度学习,来自于许多已发表的论文。

此外,它还包含一个易于使用的mini-batch加载器、多GPU支持、大量通用基准数据集和有用的转换,既可以学习任意图形,也可以学习3D网格或点云。

所有面向用户的API,据加载例程、多GPU支持、数据增强或模型实例化都很大程度上受到PyTorch的启发,以便使它们尽可能保持熟悉。

图1

几乎所有最近提出的邻域聚合函数可以利用这个接口,已经集成到PyG的方法包括(但不限于):

对于任意图形学习,我们已经实现了:

GCN(Kipf & Welling, 2017)和它的简化版本SGC(Wu et al., 2019)

GraphSAGE(Hamilton et al., 2017)

attention-based operatorsGAT(Veličković et al., 2018)及AGNN (Thekumparampil et al., 2018),

Graph Isomorphism Network (GIN) from Xu et al. (2019)

对于学习具有多维边缘特征的点云,流形和图,我们提供了:

Schlichtkrull et al. (2018)的relationalGCNoperator

PointNet++(Qi et al., 2017)

PointCNN(Li et al., 2018)

kernel-based methodsMPNN(Gilmer et al., 2017),

MoNet(Monti et al., 2017)

SplineCNN(Fey et al., 2018)

以及边缘卷积算子EdgeCNN(Wang et al., 2018b).

实验评估

我们通过对同类评估场景进行综合比较研究,评估了利用PyG所实现方法的正确性。所有使用过的数据集的描述和统计可以在论文附录中找到。

对于所有的实验,我们都尽可能地遵循各自原始论文的超参数设置,GitHub存储库中提供了复制所有实验的代码。

表2:图分类的结果

表3:点云分类的结果

我们对多个数据模型对进行了多次实验,并报告了在单个NVIDIA GTX 1080 Ti上获得的整个训练过程的运行情况(表4)。与Deep Graph Library (DGL)(Wang et al., 2018a)相比,PyG训练模型的速度快了15倍。

表4:训练runtime比较

安装、教程&示例

PyTorch Geometric使实现图卷积网络变得非常容易(请参阅GitHub上的教程)。

例如,这就是实现一个边缘卷积层(edge convolution layer)所需的全部代码:

此外,与其他深度图神经网络库相比,PyTorch Geometric的速度更快:

表:在一块NVIDIA GTX 1080Ti上的训练runtime

安装

确保至少安装了PyTorch 1.0.0,并验证cuda/bin和cuda/include分别位于$PATH和 $cpathrespecific,例如:

然后运行:

$ pip install --upgrade torch-scatter$ pip install --upgrade torch-sparse$ pip install --upgrade torch-cluster$ pip install --upgrade torch-spline-conv (optional)$ pip install torch-geometric

运行示例

cd examplespython cora.py

paper:

GitHub:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:多备份更大的价值在于数据管理
下一篇:与时俱进!传统企业向云计算业务的转型
相关文章

 发表评论

暂时没有评论,来抢沙发吧~