PyDGN:深度图网络研究库
文档
这是一个用于轻松实验深度图网络(DGNs)的Python库。它提供了数据分割、加载和常见实验设置的自动管理。它还处理模型选择和风险评估程序,通过并行尝试多种不同配置(CPU或GPU)。
引用本工作
如果您在项目中使用了这个库,请考虑引用我们:
@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}
}
安装:
自动测试在Windows、Linux和MacOS上通过。至少需要Python 3.8。 只需运行
pip install pydgn
快速入门:
构建数据集和数据分割
pydgn-dataset --config-file examples/DATA_CONFIGS/config_NCI1.yml
训练
pydgn-train --config-file examples/MODEL_CONFIGS/config_SupToyDGN.yml
这样我们就启动并运行了!
要调试代码,可以在上述命令中添加--debug
,但"GUI"将被禁用。
要停止计算,使用CTRL-C
发送SIGINT
信号,并考虑使用ray stop
命令停止所有Ray进程。警告: ray stop
会停止所有您启动的ray进程,包括其他正在进行的实验(如果有的话)。
使用训练好的模型
从实验中加载模型非常容易(另请参阅教程):
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'
# 实例化数据集
dataset = instantiate_dataset_from_config(config)
# 实例化模型
model = instantiate_model_from_config(config, dataset, config_type="supervised_config")
# 加载模型的检查点,假设已加载最佳配置
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)
# 现在可以调用模型的前向方法
y, embeddings = model(dataset[0])
使用PyDGN的项目
- 无限上下文图马尔可夫模型(ICML 2022)
- 图混合密度网络(ICML 2021)
- 上下文图马尔可夫模型(ICML 2018,JMLR 2020)
- 扩展上下文图马尔可夫模型(IJCNN 2021)
- 图的持续学习基准(WWW研讨会2021,聚焦)
数据分割
我们提供了来自以下论文的数据分割:
Errica Federico, Podda Marco, Bacciu Davide, Micheli Alessio: 图神经网络用于图分类的公平比较。第8届国际学习表示会议(ICLR 2020)。 代码
这些数据分割位于examples/DATA_SPLITS
文件夹中。
许可证:
PyDGN >= 1.0.0采用BSD 3-Clause
许可,如LICENSE
文件所述。