Documentation | Paper [JMLR] | Tutorials | Benchmarks | Examples | Colab Demo | slack community:fire:
DIG: Dive into Graphs is a turnkey library for graph deep learning research.
:fire:Update (2022/07): We have upgraded our DIG library based on PyG 2.0.0. We recommend installing our latest version.
为什么选择DIG?
与当前流行的图深度学习库(如 PyTorch Geometric (PyG) 和 Deep Graph Library (DGL))相比,DIG 的主要区别在于,虽然 PyG 和 DGL 支持基础的图深度学习操作,但 DIG 提供了一个统一的测试平台,用于更高层次、面向研究的图深度学习任务,例如图生成、自监督学习、可解释性、3D 图和图的分布外检测。
如果你正在或计划从事图深度学习的研究,DIG 可以让你在我们的可扩展框架内开发你自己的方法,并使用常见的数据集和评估指标与当前的基线方法进行比较,无需额外的工作。
概述
它包括几个高级任务的数据接口、常见算法和评估指标的统一实现。我们的目标是让研究人员能够轻松地实现和基准测试算法。目前,我们考虑以下研究方向。
- 图生成:
dig.ggraph
- 图上的自监督学习:
dig.sslgraph
- 图神经网络的可解释性:
dig.xgraph
- 3D 图上的深度学习:
dig.threedgraph
- 图分布外检测 (OOD):
dig.oodgraph
- 图增强:
dig.auggraph
- 公平图学习:
dig.fairgraph
用法
示例:几行代码运行SphereNet在QM9上,结合分子的3D信息。
from dig.threedgraph.dataset import QM93D
from dig.threedgraph.method import SphereNet
from dig.threedgraph.evaluation import ThreeDEvaluator
from dig.threedgraph.method import run
# 加载数据集和划分
dataset = QM93D(root='dataset/')
target = 'U0'
dataset.data.y = dataset.data[target]
split_idx = dataset.get_idx_split(len(dataset.data.y), train_size=110000, valid_size=10000, seed=42)
train_dataset, valid_dataset, test_dataset = dataset[split_idx['train']], dataset[split_idx['valid']], dataset[split_idx['test']]
# 定义模型、损失和评估
model = SphereNet(energy_and_force=False, cutoff=5.0, num_layers=4,
hidden_channels=128, out_channels=1, int_emb_size=64,
basis_emb_size_dist=8, basis_emb_size_angle=8, basis_emb_size_torsion=8, out_emb_channels=256,
num_spherical=3, num_radial=6, envelope_exponent=5,
num_before_skip=1, num_after_skip=2, num_output_layers=3)
loss_func = torch.nn.L1Loss()
evaluation = ThreeDEvaluator()
# 训练和评估
run3d = run()
run3d.run(device, train_dataset, valid_dataset, test_dataset, model, loss_func, evaluation,
epochs=20, batch_size=32, vt_batch_size=32, lr=0.0005, lr_decay_factor=0.5, lr_decay_step_size=15)
- 关于包含的所有 API 的详细信息,请参阅文档。
- 我们为每个方向提供一个实践教程,帮助你开始使用 DIG: 图生成, 图上的自监督学习, 图神经网络的可解释性, 3D 图上的深度学习, 图分布外检测 (GOOD) 数据集。
- 我们还提供了示例来使用 DIG 提供的 API。你可以通过点击以下链接开始你感兴趣的方向。
- 图生成:
JT-VAE
,GraphAF
,GraphDF
,GraphEBM
。 - 图的自监督学习:
InfoGraph
,GRACE
,MVGRL
,GraphCL
,LaGraph (v1 supported)
。 - 图神经网络的可解释性:
DeepLIFT
,GNN-LRP
,FlowX
,GNNExplainer
,GradCAM
,PGExplainer
,SubgraphX
。 - 三维图上的深度学习:
SchNet
,DimeNet++
,SphereNet
。 - 图OOD (GOOD) 数据集:
GOODHIV
,GOODPCBA
,GOODZINC
,GOODCMNIST
,GOODMotif
,GOODCora
,GOODArxiv
,GOODCBAS
。
安装
从pip安装
DIG的关键依赖项:Dive into Graphs 包括 PyTorch (>=1.10.0),PyTorch Geometric (>=2.0.0),和 RDKit。
- 安装 PyTorch (>=1.10.0)
python -c "import torch; print(torch.__version__)"
>>> 1.10.0
- 安装 PyG (>=2.0.0)
python -c "import torch_geometric; print(torch_geometric.__version__)"
>>> 2.0.0
- 安装 DIG: Dive into Graphs。
pip install dive-into-graphs
安装完成后,您可以检查版本。如果没有错误发生,则表示您已经成功安装了 DIG: Dive into Graphs。
python
>>> from dig.version import __version__
>>> print(__version__)
从源代码安装
如果您想尝试尚未发布的最新功能,可以从源代码安装dig。
git clone https://github.com/divelab/DIG.git
cd DIG
pip install .
贡献
我们欢迎各种贡献形式,比如报告错误和添加新功能。详情请参阅我们的贡献指南。
引用DIG
如果您在工作中发现 DIG 有用,请引用我们的论文:
@article{JMLR:v22:21-0343,
author = {Meng Liu and Youzhi Luo and Limei Wang and Yaochen Xie and Hao Yuan and Shurui Gui and Haiyang Yu and Zhao Xu and Jingtun Zhang and Yi Liu and Keqiang Yan and Haoran Liu and Cong Fu and Bora M Oztekin and Xuan Zhang and Shuiwang Ji},
title = {{DIG}: A Turnkey Library for Diving into Graph Deep Learning Research},
journal = {Journal of Machine Learning Research},
year = {2021},
volume = {22},
number = {240},
pages = {1-9},
url = {http://jmlr.org/papers/v22/21-0343.html}
}
团队
DIG: Dive into Graphs 由TAMU的 DIVE 开发。贡献者有Meng Liu*, Youzhi Luo*, Limei Wang*, Yaochen Xie*, Hao Yuan*, Shurui Gui*, Haiyang Yu*, Zhao Xu, Jingtun Zhang, Yi Liu, Keqiang Yan, Haoran Liu, Cong Fu, Bora Oztekin, Xuan Zhang 和 Shuiwang Ji。
致谢
这项工作部分由国家科学基金会资助的项目支持,包括IIS-2006861, IIS-1955189, IIS-1908220, IIS-1908198, DBI-2028361 和 DBI-1922969。
联系方式
如果您有任何技术问题,请提交新的issue或在我们的DIG slack社区中提出。
如果您有其他问题,请联系我们:Meng Liu [mengliu@tamu.edu] 和 Shuiwang Ji [sji@tamu.edu]。