Back to Projects

LibSPN: A Library for Learning and Inference with Sum-Product Networks and TensorFlow

Sum-Product Networks (SPNs) are a probabilistic deep architecture with solid theoretical foundations, which demonstrated state-of-the-art performance in several domains. LibSPN is a general-purpose Python library designed to make it straightforward and effortless to apply various SPN architectures to large-scale datasets and problems.

LibSPN Architecture Diagram

Overview

Surprisingly, there were no mature, general-purpose SPN implementations that would serve as a platform for the community of machine learning researchers. LibSPN aims to become such a platform. The library achieves scalability and efficiency thanks to a tight coupling with TensorFlow, a framework already used by a large community of researchers and developers.

Features

  • TensorFlow integration for scalability and GPU acceleration
  • Multiple SPN architectures and structure learning algorithms
  • Efficient inference and learning procedures
  • Comprehensive documentation and examples

Publication

A. Pronobis, A. Ranganath, and R.P. Rao, "LibSPN: A Library for Learning and Inference with Sum-Product Networks and TensorFlow", in Workshop on Principled Approaches to Deep Learning, ICML 2017, Sydney, Australia, Aug 2017.

Download PDF