You're Invited: Meet the Socket team at BSidesSF and RSAC - April 27 - May 1.RSVP
Socket
Sign inDemoInstall
Socket

pydgn

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pydgn

A Python Package for Deep Graph Networks

1.6.0
PyPI
Maintainers
1

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.

Keywords

deep-graph-networks

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts