Skip to main content

A Python Package for Deep Graph Networks

Project description

PyDGN: a research library for Deep Graph Networks

License Documentation Status Python Package Downloads Code style: black Interrogate Coverage DOI

Documentation

This is a Python library to easily experiment with Deep Graph Networks (DGNs). It provides automatic management of data splitting, loading and common experimental settings. It also handles both model selection and risk assessment procedures, by trying many different configurations in parallel (CPU or GPU).

Citing this work

If you used this library for your project, please consider citing us:

@article{pydgn,
  author = {Errica, Federico and Bacciu, Davide and Micheli, Alessio},
  doi = {10.21105/joss.05713},
  journal = {Journal of Open Source Software},
  month = oct,
  number = {90},
  pages = {5713},
  title = {{PyDGN: a Python Library for Flexible and Reproducible Research on Deep Learning for Graphs}},
  url = {https://joss.theoj.org/papers/10.21105/joss.05713},
  volume = {8},
  year = {2023}
}

Installation:

Automated tests passing on Windows, Linux, and MacOS. Requires at least Python 3.8. Simply run

pip install pydgn

Quickstart:

Build dataset and data splits

pydgn-dataset --config-file examples/DATA_CONFIGS/config_NCI1.yml

Train

pydgn-train  --config-file examples/MODEL_CONFIGS/config_SupToyDGN.yml 

And we are up and running!

To debug your code you can add --debug to the command above, but the "GUI" will be disabled.

To stop the computation, use CTRL-C to send a SIGINT signal, and consider using the command ray stop to stop all Ray processes. Warning: ray stop stops all ray processes you have launched, including those of other experiments in progress, if any.

Using the Trained Models

It's very easy to load the model from the experiments (see also the Tutorial):

from pydgn.evaluation.util import *

config = retrieve_best_configuration('RESULTS/supervised_grid_search_toy_NCI1/MODEL_ASSESSMENT/OUTER_FOLD_1/MODEL_SELECTION/')
splits_filepath = 'examples/DATA_SPLITS/CHEMICAL/NCI1/NCI1_outer10_inner1.splits'
device = 'cpu'

# instantiate dataset
dataset = instantiate_dataset_from_config(config)

# instantiate model
model = instantiate_model_from_config(config, dataset, config_type="supervised_config")

# load model's checkpoint, assuming the best configuration has been loaded
checkpoint_location = 'RESULTS/supervised_grid_search_toy_NCI1/MODEL_ASSESSMENT/OUTER_FOLD_1/final_run1/best_checkpoint.pth'
load_checkpoint(checkpoint_location, model, device=device)

# you can now call the forward method of your model
y, embeddings = model(dataset[0])

Projects using PyDGN

Data Splits

We provide the data splits taken from

Errica Federico, Podda Marco, Bacciu Davide, Micheli Alessio: A Fair Comparison of Graph Neural Networks for Graph Classification. 8th International Conference on Learning Representations (ICLR 2020). Code

in the examples/DATA_SPLITS folder.

License:

PyDGN >= 1.0.0 is BSD 3-Clause licensed, as written in the LICENSE file.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

pydgn-1.5.9.tar.gz (80.3 kB view details)

Uploaded Source

Built Distribution

pydgn-1.5.9-py3-none-any.whl (95.0 kB view details)

Uploaded Python 3

File details

Details for the file pydgn-1.5.9.tar.gz.

File metadata

  • Download URL: pydgn-1.5.9.tar.gz
  • Upload date:
  • Size: 80.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for pydgn-1.5.9.tar.gz
Algorithm Hash digest
SHA256 4c6bfce40877c7860dabc24fd1ed5b0272429dbf0bac0e6aaa7cefd052b9c87a
MD5 d03a266a0cdac146dba22476dbb84add
BLAKE2b-256 bbf8f281bdef79b53b0f1ba88b99d8d02705ce0c12696ba2f152dd4b2221d8aa

See more details on using hashes here.

Provenance

File details

Details for the file pydgn-1.5.9-py3-none-any.whl.

File metadata

  • Download URL: pydgn-1.5.9-py3-none-any.whl
  • Upload date:
  • Size: 95.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for pydgn-1.5.9-py3-none-any.whl
Algorithm Hash digest
SHA256 b64e1ec0138e1c9d69c0acd8f5f0a639b9b1d6fae49cebb3ede4a7aea46ed103
MD5 3b0298af137df9567aa2f2445e42e061
BLAKE2b-256 113e1992ac2319d645742827f9e5d9559540e09370581d6775aa53658721828d

See more details on using hashes here.

Provenance

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