又一个强大的Python库!

2022-06-10 17:31:36 浏览数 (1)

人生苦短,快学Python!

前文推荐:Python实战:将头像转成动漫风!众所周知,近年来深度学习在大量领域表现出非常好的结效果,比如我们常见的图像、视频、语音和自然语言处理等。

但是由于图数据本身的存在局限性,导致不能直接使用深度学习方法和模型。所以很多学者的工作都在一些对图数据的表示上或者基于表示的数据进行的模型设计上,很幸运的是我们有一些库可以很好的帮助我们进行图神经网络建模。

一种图数据关系

好在现在人工智能这一块很多的代码实现基本上使用的都是Python,因此我们可以使用基于前任开发的Python模块来快速构建图神经网络模型。

今天我们的来介绍一个比较强大的Python图神经网络库,它是DeepSNAP。这个Python包提供了networkx到PyTorch Geometric的接口。插一句PyTorch Geometric是一个基于PyTorch构建的库,可轻松编写和训练图形神经网络 (GNN),它在结构化数据相关的领域上有着广泛的应用。

使用DeepSNAP开发可以帮助我们对图进行高效的深度学习。它的特点是支持灵活的图形操作、标准管道、异构图形和简单的 API。其他的特性可以参考:https://snap.stanford.edu/deepsnap/index.html

安装

安装上我们可以直接使用pip源安装,还是很简单的。

代码语言:javascript复制
pip install deepsnap

如果在服务器上安装会出错,建议克隆安装:

代码语言:javascript复制
git clone https://github.com/snap-stanford/deepsnap
cd deepsnap
pip install

详见:

核心模块

DeepSNAP具有几个核心的模块:

这里我们简单总结一下,他们各自负责的主要功能:

  • DeepSNAP Graph: 负责操作用于训练 GNN 的图形对象。这也是我们经常需要关注的图形对象,该对象可以使用NetworkX来创建。
  • DeepSNAP Dataset:很显然用于操作数据(deepsnap图数据),可以一步直接将数据划分为我们使用的train、test和val数据集。
  • DeepSNAP Batch:这个模块的主要作用是进行批处理的操作。
  • DeepSNAP Heterogeneous Graph:主要是一些关于异构图的操作,这个模块还是非常强大的。
  • DeepSNAP Heterogeneous GNN:帮助我们轻松创建异构GNN等功能。

我们可以基于此模块进行图的节点分类、边预测和图分类等等。具体参考上述github链接,此处不在赘述。

其他推荐

现在相关的关于DeepSNAP的中文材料不是很多,不过官方的文档和材料已经足够使用了,想了解更多的关于DeepSNAP的用法建议阅读源码进行探究。另外比较建议的是在学习这个库之前最好将PyTorch Geometric库的相关用法掌握一下,基本上会PyTorch就会使用这个库,更多的是图数据的创建和转化上。

推荐一下斯坦福的这门课程,课程传送门如下:http://web.stanford.edu/class/cs224w/

另外还有一本京东数据智能部旗下图计算团队基于京东Galileo 图深度学习平台编写的《图深度学习从理论到实践》。

《图深度学习从理论到实践》由浅入深,全面介绍图神经网络的基础知识、典型模型方法和应用实践。《图深度学习从理论到实践》不仅包括一般的深度学习基础和图基础知识,还涵盖了图表示学习、图卷积、图注意力、图序列等典型图网络模型,以京东自研的Galileo平台为代表的图学习框架,以及图神经网络在电商推荐流量风控方面的两个典型工业应用。

0 人点赞