PyDGN
PyDGN: a Python Library for Flexible and Reproducible Research on Deep Learning for Graphs - Published in JOSS (2023)
Science Score: 98.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 6 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: sciencedirect.com, joss.theoj.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Keywords from Contributors
Scientific Fields
Repository
A research library for automating experiments on Deep Graph Networks
Basic Info
- Host: GitHub
- Owner: diningphil
- License: bsd-3-clause
- Language: Python
- Default Branch: main
- Homepage: https://pydgn.readthedocs.io
- Size: 10.7 MB
Statistics
- Stars: 223
- Watchers: 5
- Forks: 13
- Open Issues: 0
- Releases: 48
Topics
Metadata Files
README.md
PyDGN: a research library for Deep Graph Networks
Documentation
❗❗ 2025 Update: PyDGN is now considered legacy; users are encouraged to switch to MLWiz❗❗
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
- Infinite Contextual Graph Markov Model (ICML 2022)
- Graph Mixture Density Networks (ICML 2021)
- Contextual Graph Markov Model (ICML 2018, JMLR 2020)
- Extended Contextual Graph Markov Model (IJCNN 2021)
- Continual Learning Benchmark for Graphs (WWW Workshop 2021, spotlight)
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.
Owner
- Name: Federico Errica
- Login: diningphil
- Kind: user
- Location: Heidelberg, DE
- Company: NEC Laboratories Europe GmbH
- Website: https://diningphil.github.io/
- Twitter: federico_errica
- Repositories: 7
- Profile: https://github.com/diningphil
Teaching Machines @ NLE
JOSS Publication
PyDGN: a Python Library for Flexible and Reproducible Research on Deep Learning for Graphs
Authors
Tags
Machine Learning Graph Networks Deep Learning for GraphsCitation (CITATION.cff)
cff-version: "1.2.0"
authors:
- family-names: Errica
given-names: Federico
orcid: "https://orcid.org/0000-0001-5181-2904"
- family-names: Bacciu
given-names: Davide
orcid: "https://orcid.org/0000-0001-5213-2468"
- family-names: Micheli
given-names: Alessio
orcid: "https://orcid.org/0000-0001-5764-5238"
contact:
- family-names: Errica
given-names: Federico
orcid: "https://orcid.org/0000-0001-5181-2904"
doi: 10.5281/zenodo.8396373
message: If you use this software, please cite our article in the
Journal of Open Source Software.
preferred-citation:
authors:
- family-names: Errica
given-names: Federico
orcid: "https://orcid.org/0000-0001-5181-2904"
- family-names: Bacciu
given-names: Davide
orcid: "https://orcid.org/0000-0001-5213-2468"
- family-names: Micheli
given-names: Alessio
orcid: "https://orcid.org/0000-0001-5764-5238"
date-published: 2023-10-01
doi: 10.21105/joss.05713
issn: 2475-9066
issue: 90
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 5713
title: "PyDGN: a Python Library for Flexible and Reproducible Research
on Deep Learning for Graphs"
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.05713"
volume: 8
title: "PyDGN: a Python Library for Flexible and Reproducible Research
on Deep Learning for Graphs"
GitHub Events
Total
- Watch event: 7
- Pull request event: 1
Last Year
- Watch event: 7
- Pull request event: 1
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Federico Errica | f****a@p****m | 336 |
| Federico Errica | f****a@p****m | 20 |
| Federico Errica | f****a@p****t | 9 |
| Saurav Maheshkar | s****r@g****m | 6 |
| dependabot[bot] | 4****] | 5 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 14
- Total pull requests: 73
- Average time to close issues: about 1 month
- Average time to close pull requests: about 15 hours
- Total issue authors: 2
- Total pull request authors: 3
- Average comments per issue: 1.21
- Average comments per pull request: 0.08
- Merged pull requests: 70
- Bot issues: 0
- Bot pull requests: 7
Past Year
- Issues: 0
- Pull requests: 7
- Average time to close issues: N/A
- Average time to close pull requests: 19 minutes
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 7
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- diningphil (15)
- jwtxwd (1)
Pull Request Authors
- diningphil (69)
- dependabot[bot] (7)
- SauravMaheshkar (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- PyYAML ==5.4
- aioredis ==1.3.1
- gpustat ==0.6.0
- matplotlib ==3.3.4
- networkx ==2.3
- ogb ==1.3.3
- ray ==1.5.2
- readthedocs-sphinx-search ==0.1.1
- requests ==2.22.0
- seaborn ==0.9.0
- sphinx ==4.4.0
- sphinx_rtd_theme ==1.0.0
- tensorboard ==2.1.1
- torch ==1.10.2
- torch-cluster *
- torch-geometric ==2.0.3
- torch-scatter *
- torch-sparse *
- torch-spline-conv *
- tqdm ==4.47.0
- PyYAML *
- aioredis *
- gpustat *
- matplotlib *
- networkx *
- ogb *
- ray *
- requests *
- seaborn *
- tensorboard *
- torch *
- torch-geometric *
- torch-geometric-temporal *
- tqdm *
- actions/checkout v2 composite
- actions/setup-python v2 composite
- ad-m/github-push-action master composite
- diningphil/python-interrogate-check main composite
- actions/checkout v3 composite
- actions/setup-python v3 composite
- pypa/gh-action-pypi-publish 27b31702a0e7fc50959f5ad993c78deac1bdfc29 composite
- actions/checkout v3 composite
- actions/setup-python v3 composite
- ad-m/github-push-action master composite
- PyYAML ==5.4
- click <=8.0.4
- gpustat ==1.0.0
- ogb ==1.3.5
- protobuf ==3.20.3
- ray ==2.1.0
- requests ==2.22.0
- tensorboard ==2.11.0
- torch ==1.13.0
- tqdm ==4.47.0
- wandb ==0.12.15
- torch-cluster ==1.6.0
- torch-geometric ==2.1.0.post1
- torch-geometric-temporal >=0.52.0
- torch-scatter ==2.1.0
- torch-sparse ==0.6.15
- torch-spline-conv ==1.2.1
