Skip to main content

Graph Neural Network library for PyTorch

Project description

ptgnn: A PyTorch GNN Library

This is a library containing pyTorch code for creating graph neural network (GNN) models. The library provides some sample implementations.

If you are interested in using this library, please read about its architecture and how to define GNN models or follow this tutorial.

Note that ptgnn takes care of defining the whole pipeline, including data wrangling tasks, such as data loading and tensorization. It also defines PyTorch nn.Modules for the neural network operations. These are independent of the AbstractNeuralModels and can be used as all other PyTorch's nn.Modules, if one wishes to do so.

The library is mainly engineered to be fast for sparse graphs. For example, for the Graph2Class task (discussed below) on a V100 with the default hyperparameters and architecture ptgnn can process about 82 graphs/sec (209k nodes/sec and 1,129k edges/sec) during training and about 200 graph/sec (470k nodes/sec and 2,527k edges/sec) during testing.

Implemented Tasks

All task implementations can be found in the ptgnn.implementations package. Detailed instructions on the data and the training steps can be found here. We welcome external contributions. The following GNN-based tasks are implemented:

The tutorial gives a step-by-step example for coding the Graph2Class model.

Installation

This code was tested with PyTorch 1.4 and depends on pytorch-scatter. Please install the appropriate versions of these libraries based on your CUDA setup following their instructions. (Note that the pytorch-scatter binaries built for CUDA 10.1 also work for CUDA 10.2).

  1. To install PyTorch 1.4, use the up-to-date command from PyTorch Get Started, selecting the appropriate options, e.g. for Linux, pip, and CUDA 10.1 it's currently:

    pip install torch torchvision
    
  2. To install pytorch-scatter, follow the instructions from the GitHub repo, choosing the appropriate CUDA option, e.g., for CUDA 10.1:

    pip install torch-scatter==2.0.4+cu101 -f https://pytorch-geometric.com/whl/torch-1.4.0.html
    
  3. To install pt-gnn as a package, including all other dependencies:

    pip install -e .
    

To check that installation was successful and run the unit tests:

python setup.py test

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Developing ptgnn

Run Tests Code style: black

To contribute to this library, first follow the next steps:

  • Install the requirements.
  • Install the pre-commit hooks:
    • Run pip3 install pre-commit
    • Install the hooks pre-commit install
Conda Instructions

If you are using conda, then download the correct torch-scatter wheel. If using torch==1.5.0 and Python 3.7, you can use the environment.yml included in the repo, with the following steps:

$ 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ptgnn-0.0.0.tar.gz (65.3 kB view details)

Uploaded Source

Built Distribution

ptgnn-0.0.0-py3-none-any.whl (69.9 kB view details)

Uploaded Python 3

File details

Details for the file ptgnn-0.0.0.tar.gz.

File metadata

  • Download URL: ptgnn-0.0.0.tar.gz
  • Upload date:
  • Size: 65.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for ptgnn-0.0.0.tar.gz
Algorithm Hash digest
SHA256 b0f9470668a09b51175bab9547d01608f86dc1bc8d551099c2c9ec45e8e65a8e
MD5 15d9fb6e7e73550bb7ef7c98fc545ae5
BLAKE2b-256 9a233627fe6bc450164d5e2872622e9e2b5542f1cd7758eaccd2be866853247b

See more details on using hashes here.

File details

Details for the file ptgnn-0.0.0-py3-none-any.whl.

File metadata

  • Download URL: ptgnn-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 69.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for ptgnn-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3935202842c2a5912b60edf74ede2467f2ca3ac3d14417f4763c58e7e0e75a14
MD5 e0119cc020269883b6b8e99ffc9c1cef
BLAKE2b-256 75ca7f9a0041a7e8b9d49edf29e62a6fe6b4f6f96bf5ed8226c244fda1ece668

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page