All Projects → divelab → DIG

divelab / DIG

Licence: GPL-3.0 License
A library for graph deep learning research

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to DIG

SelfSupervisedLearning-DSM
code for AAAI21 paper "Enhancing Unsupervised Video Representation Learning by Decoupling the Scene and the Motion“
Stars: ✭ 26 (-97.59%)
Mutual labels:  self-supervised-learning
point-cloud-prediction
Self-supervised Point Cloud Prediction Using 3D Spatio-temporal Convolutional Networks
Stars: ✭ 97 (-91%)
Mutual labels:  self-supervised-learning
CIKM2020-S3Rec
Code for CIKM2020 "S3-Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization"
Stars: ✭ 150 (-86.09%)
Mutual labels:  self-supervised-learning
GNNs-in-Network-Neuroscience
A review of papers proposing novel GNN methods with application to brain connectivity published in 2017-2020.
Stars: ✭ 92 (-91.47%)
Mutual labels:  graph-neural-network
improving segmentation with selfsupervised depth
[CVPR21] Implementation of our work "Three Ways to Improve Semantic Segmentation with Self-Supervised Depth Estimation"
Stars: ✭ 189 (-82.47%)
Mutual labels:  self-supervised-learning
CARLA
CARLA: A Python Library to Benchmark Algorithmic Recourse and Counterfactual Explanation Algorithms
Stars: ✭ 166 (-84.6%)
Mutual labels:  explainable-ml
video repres mas
code for CVPR-2019 paper: Self-supervised Spatio-temporal Representation Learning for Videos by Predicting Motion and Appearance Statistics
Stars: ✭ 63 (-94.16%)
Mutual labels:  self-supervised-learning
awesome-contrastive-self-supervised-learning
A comprehensive list of awesome contrastive self-supervised learning papers.
Stars: ✭ 748 (-30.61%)
Mutual labels:  self-supervised-learning
SimCLR-in-TensorFlow-2
(Minimally) implements SimCLR (https://arxiv.org/abs/2002.05709) in TensorFlow 2.
Stars: ✭ 75 (-93.04%)
Mutual labels:  self-supervised-learning
SelfTask-GNN
Implementation of paper "Self-supervised Learning on Graphs:Deep Insights and New Directions"
Stars: ✭ 78 (-92.76%)
Mutual labels:  self-supervised-learning
FisheyeDistanceNet
FisheyeDistanceNet
Stars: ✭ 33 (-96.94%)
Mutual labels:  self-supervised-learning
LightGraphs.jl
An optimized graphs package for the Julia programming language
Stars: ✭ 680 (-36.92%)
Mutual labels:  graph-generation
shapr
Explaining the output of machine learning models with more accurately estimated Shapley values
Stars: ✭ 95 (-91.19%)
Mutual labels:  explainable-ml
cnn-raccoon
Create interactive dashboards for your Convolutional Neural Networks with a single line of code!
Stars: ✭ 31 (-97.12%)
Mutual labels:  explainable-ml
PASSL
PASSL包含 SimCLR,MoCo v1/v2,BYOL,CLIP,PixPro,BEiT,MAE等图像自监督算法以及 Vision Transformer,DEiT,Swin Transformer,CvT,T2T-ViT,MLP-Mixer,XCiT,ConvNeXt,PVTv2 等基础视觉算法
Stars: ✭ 134 (-87.57%)
Mutual labels:  self-supervised-learning
FKD
A Fast Knowledge Distillation Framework for Visual Recognition
Stars: ✭ 49 (-95.45%)
Mutual labels:  self-supervised-learning
AdCo
AdCo: Adversarial Contrast for Efficient Learning of Unsupervised Representations from Self-Trained Negative Adversaries
Stars: ✭ 148 (-86.27%)
Mutual labels:  self-supervised-learning
EgoNet
Official project website for the CVPR 2021 paper "Exploring intermediate representation for monocular vehicle pose estimation"
Stars: ✭ 111 (-89.7%)
Mutual labels:  self-supervised-learning
ReFine
Official code of "Towards Multi-Grained Explainability for Graph Neural Networks" (2021 NeurIPS)
Stars: ✭ 40 (-96.29%)
Mutual labels:  graph-neural-network
GCA
[WWW 2021] Source code for "Graph Contrastive Learning with Adaptive Augmentation"
Stars: ✭ 69 (-93.6%)
Mutual labels:  self-supervised-learning

logo

PyPI Version Docs Status Build Status codecov Last Commit Contributing License visitors Downloads

Documentation | Paper [JMLR] | Tutorials | Benchmarks | Examples

DIG: Dive into Graphs is a turnkey library for graph deep learning research.

Why DIG?

The key difference with current graph deep learning libraries, such as PyTorch Geometric (PyG) and Deep Graph Library (DGL), is that, while PyG and DGL support basic graph deep learning operations, DIG provides a unified testbed for higher level, research-oriented graph deep learning tasks, such as graph generation, self-supervised learning, explainability, and 3D graphs.

If you are working or plan to work on research in graph deep learning, DIG enables you to develop your own methods within our extensible framework, and compare with current baseline methods using common datasets and evaluation metrics without extra efforts.

Overview

It includes unified implementations of data interfaces, common algorithms, and evaluation metrics for several advanced tasks. Our goal is to enable researchers to easily implement and benchmark algorithms. Currently, we consider the following research directions.

  • Graph Generation: dig.ggraph
  • Self-supervised Learning on Graphs: dig.sslgraph
  • Explainability of Graph Neural Networks: dig.xgraph
  • Deep Learning on 3D Graphs: dig.threedgraph

logo

Usage

Example: a few lines of code to run SphereNet on QM9 to incorporate 3D information of molecules.

from dig.threedgraph.dataset import QM93D
from dig.threedgraph.method import SphereNet
from dig.threedgraph.evaluation import ThreeDEvaluator
from dig.threedgraph.method import run

# Load the dataset and split
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']]

# Define model, loss, and evaluation
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()

# Train and evaluate
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)
  1. For details of all included APIs, please refer to the documentation.
  2. We provide a hands-on tutorial for each direction to help you to get started with DIG: Graph Generation, Self-supervised Learning on Graphs, Explainability of Graph Neural Networks, and Deep Learning on 3D Graphs.
  3. We also provide examples to use APIs provided in DIG. You can get started with your interested directions by clicking the following links.

Installation

Install from pip

The key dependencies of DIG: Dive into Graphs are PyTorch (>=1.6.0), PyTorch Geometric (>=1.6.0), and RDKit.

  1. Install PyTorch (>=1.6.0)
$ python -c "import torch; print(torch.__version__)"
>>> 1.6.0
  1. Install PyTorch Geometric (>=1.6.0)
$ python -c "import torch_geometric; print(torch_geometric.__version__)"
>>> 1.6.0

Note: Our library has not been tested on PyTorch Geometric >= 2.0.0, which is largely different with PyTorch Geometric 1.x.x. Hence, we recommend to install PyTorch Geometric with a version from 1.6.0 to 1.7.2.

  1. Install DIG: Dive into Graphs.
pip install dive-into-graphs

After installation, you can check the version. You have successfully installed DIG: Dive into Graphs if no error occurs.

$ python
>>> from dig.version import __version__
>>> print(__version__)

Install from source

If you want to try the latest features that have not been released yet, you can install dig from source.

git clone https://github.com/divelab/DIG.git
cd DIG
pip install .

Contributing

We welcome any forms of contributions, such as reporting bugs and adding new features. Please refer to our contributing guidelines for details.

Citing DIG

Please cite our paper if you find DIG useful in your work:

@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}
}

The Team

DIG: Dive into Graphs is developed by DIVE@TAMU. Contributors are 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, and Shuiwang Ji.

Contact

If you have any technical questions, please submit new issues.

If you have any other questions, please contact us: Meng Liu [[email protected]] and Shuiwang Ji [[email protected]].

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].