跳转到主要内容

PyTorch的图神经网络库

项目描述

ptgnn: 一个PyTorch GNN库 PyPI

这是一个包含用于创建图神经网络(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)。

  1. 要安装PyTorch 1.4,请使用来自PyTorch Get Started的最新命令,选择适当的选项,例如对于Linux、pip和CUDA 10.1,目前是

    pip install torch torchvision
    
  2. 要安装pytorch-scatter,请遵循GitHub仓库中的说明,选择适当的CUDA选项,例如,对于CUDA 10.1

    pip install torch-scatter==2.0.4+cu101 -f https://pytorch-geometric.com/whl/torch-1.4.0.html
    
  3. 要从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

Unit Tests Total alerts Code style: black

要为此库做出贡献,首先按照以下步骤设置您的开发环境

  • 安装库要求。
  • 安装预提交钩子
    • 运行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操作将自动上传新的版本。

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源分布

ptgnn-0.10.4.tar.gz (73.2 kB 查看哈希值)

上传时间

构建分布

ptgnn-0.10.4-py3-none-any.whl (84.0 kB 查看哈希值)

上传时间 Python 3

由以下组织支持