Key Features

Generality

Domain-independent, various data types

Simplicity

Clean and simple Python interface

Familiarity

Incorporates TensorFlow concepts

Expressiveness

Accommodates various SPN architectures (designed and generated/learned)

Efficiency

Multi-GPU, custom C++/CUDA code

Scalability

Handles data larger than memory

Usability

High-level interface, introspection, data processing tools

Extensibility

Object-oriented, easy to extend, integrates with other TensorFlow models

Installation instructions for LibSPN:

Several tutorials in Jupyter Notebook are available for LibSPN.