OpenHGNN  by BUPT-GAMMA

OpenHGNN: toolkit for heterogeneous graph neural networks

created 4 years ago
928 stars

Top 40.2% on sourcepulse

GitHubView on GitHub
Project Summary

OpenHGNN is an open-source toolkit for Heterogeneous Graph Neural Networks (HGNNs) built upon DGL and PyTorch. It provides researchers and practitioners with a comprehensive library of state-of-the-art HGNN models and tools for benchmarking, experimentation, and development in heterogeneous graph analysis.

How It Works

OpenHGNN integrates various HGNN models, offering a unified interface for running experiments on different datasets and tasks. It leverages DGL for efficient graph computation and supports PyTorch for model implementation. The toolkit emphasizes ease of use, extensibility for custom models and datasets, and efficient execution, with features like hyperparameter optimization via Optuna and support for distributed training.

Quick Start & Requirements

  • Installation: pip install openhgnn (from PyPI) or install from source.
  • Prerequisites: Python >= 3.6, PyTorch >= 2.3.0, DGL >= 2.2.1. Supports CPU or NVIDIA GPU on Linux.
  • Setup: Basic setup involves installing Python dependencies. Running experiments requires specifying model, dataset, and task.
  • Resources: Official documentation and examples are available.

Highlighted Details

  • Integrates a wide range of HGNN models for node classification, link prediction, and recommendation tasks.
  • Supports graph pre-training, recommendation, graph adversarial attacks/defenses, and anomaly detection.
  • Includes features for distributed training, mini-batch training with Graphbolt, and TensorBoard visualization.
  • Offers a design space exploration tool (Space4HGNN) and a benchmark leaderboard.

Maintenance & Community

The project is actively maintained by the BUPT GAMMA Lab, with contributions from the DGL team and Peng Cheng Laboratory. It has received awards and recognition, including the Kai-Zhi Community Excellent Incubation Award and support for a first-prize project in Electronic Science and Technology. A Slack channel is available for community interaction.

Licensing & Compatibility

The project is open-source, with a citation request for academic use. Specific licensing details for commercial use are not explicitly stated in the README, but it is built on DGL and PyTorch, which have permissive licenses.

Limitations & Caveats

The README mentions support for Python 3.6, which is now quite dated; newer Python versions are likely compatible but not explicitly guaranteed. Some advanced features like distributed training or Graphbolt integration may require specific configurations or dependencies.

Health Check
Last commit

6 months ago

Responsiveness

Inactive

Pull Requests (30d)
2
Issues (30d)
0
Star History
22 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.