/pyGSL

A Graph Structure Learning (GSL) Toolkit

Primary LanguagePythonMIT LicenseMIT

pyGSL: A Scalable Library for Graph Structure Learning

Licensed under the MIT license Python Version Git on GitHub The uncompromising Python code formatter Documentation Status Issue Tracker

pyGSL houses state-of-the-art implementations of graph structure learning (also called 'network topology inference' or simply 'graph learning') models, as well as synthetic and real datasets across a variety of domains.

pyGSL houses 4 types of models: ad-hoc, model-based, unrolling-based, and deep-learning-based. Model-based formulations often admit iterative solution methods, and are implemented in GPU friendly ways when feasible. The unrolling-based methods leverage the concept of algorithm unrolling to learn the values of the optimization parameters in the model-based methods using a dataset. We build such models using Pytorch-Lightning making it easy to scale models to (multi-)GPU training environments when needed.

Synthetic datasets include a wide range of network classes and many signal constructions (e.g. smooth, diffusion, etc). Real datasets include neuroimaging data (HCP-YA structural/functional connectivity graphs), social network co-location data, and more.

Installation & Setup

See instructions in /envs/environment.yml for instructions on how to setup the required conda environment. Only tested on macOS and Ubuntu systems.

License

Please observe the MIT license that is listed in this repository.