PyTorch的图神经网络库
项目描述
ptgnn: 一个PyTorch GNN库 
这是一个包含用于创建图神经网络(GNN)模型的pyTorch代码的库。该库提供了一些示例实现。
如果您对使用此库感兴趣,请阅读有关其架构和如何定义GNN模型或遵循本教程。
请注意,ptgnn
负责定义整个管道,包括数据整理任务,例如数据加载和张量化。它还定义了用于神经网络操作的PyTorch nn.Module
。这些与AbstractNeuralModel
无关,如果愿意,可以像其他所有PyTorch的nn.Module
一样使用。
该库主要针对稀疏图进行优化,以提高速度。例如,在V100上执行Graph2Class任务(如下文所述),使用默认的超参数和架构ptgnn
,在训练期间可以处理约82个图/秒(209k个节点/秒和1,129k个边/秒),在测试期间约200个图/秒(470k个节点/秒和2,527k个边/秒)。
实现的任务
所有任务实现都可以在ptgnn.implementations
包中找到。有关数据和训练步骤的详细说明,请参阅此处。我们欢迎外部贡献。以下是基于GNN的任务实现:
- PPI Zitnik和Leskovec,2017年描述的PPI任务。
- VarMisuse 这是Allamanis等人,2018年VariableMisuse任务的重新实现。
- Graph2Sequence 这是Fernandes等人,2019年GNN->GRU模型的重新实现。
- Graph2Class 将输入节点的一个子集分类(标记)成类似于Typilus中Graph2Class的类别。
教程提供了编码Graph2Class模型的逐步示例。
安装
此代码在PyTorch 1.4上进行了测试,依赖于pytorch-scatter
。请根据您的CUDA设置,按照其说明安装这些库的适当版本。(请注意,为CUDA 10.1构建的pytorch-scatter
二进制文件也适用于CUDA 10.2)。
-
要安装PyTorch 1.4,请使用来自PyTorch Get Started的最新命令,选择适当的选项,例如对于Linux、pip和CUDA 10.1,目前是
pip install torch torchvision
-
要安装
pytorch-scatter
,请遵循GitHub仓库中的说明,选择适当的CUDA选项,例如,对于CUDA 10.1pip install torch-scatter==2.0.4+cu101 -f https://pytorch-geometric.com/whl/torch-1.4.0.html
-
要从pypi安装
ptgnn
,包括所有其他依赖项pip install ptgnn
如果您想使用ptgnn样例与Azure ML(例如实现CLI中的
--aml
标志)一起使用,请使用以下命令安装pip install ptgnn[aml]
或直接从源代码安装,进入项目的根目录并运行
pip install -e .
要检查安装是否成功并运行单元测试
python setup.py test
贡献
此项目欢迎贡献和建议。大多数贡献都需要您同意贡献者许可协议(CLA),声明您有权,并且实际上确实授予我们使用您的贡献的权利。有关详细信息,请访问https://cla.opensource.microsoft.com。
当您提交拉取请求时,CLA机器人将自动确定您是否需要提供CLA,并相应地装饰PR(例如,状态检查,评论)。只需遵循机器人提供的说明即可。您只需要在整个使用我们的CLA的仓库中这样做一次。
本项目已采用Microsoft开源行为准则。有关更多信息,请参阅行为准则FAQ或通过opencode@microsoft.com联系以获取任何额外的问题或评论。
开发ptgnn
要为此库做出贡献,首先按照以下步骤设置您的开发环境
- 安装库要求。
- 安装预提交钩子
- 运行
pip3 install pre-commit
- 安装钩子
pre-commit install
- 运行
使用Conda
如果您正在使用conda,那么请下载正确的torch-scatter wheel。如果使用torch==1.5.0
和Python 3.7,您可以使用仓库中包含的environment.yml,按照以下步骤进行
$ conda env create -f environment.yml
$ conda activate ptgnn-env
$ pip install torch_scatter-2.0.4+cu102-cp37-cp37m-linux_x86_64.whl
$ pip install -e .
$ python setup.py test
$ pip install pre-commit
$ pre-commit install
发布到PyPi
为了创建PyPi版本,请在此存储库中推送一个形如v1.3.4
的标签(确保您遵循语义版本控制)。GitHub的发布到PyPi操作将自动上传新的版本。
项目详情
下载文件
下载适用于您平台文件的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。