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. Yet, surprisingly, there are no mature, general-purpose SPN implementations that would serve as a platform for the community of machine learning researchers centered around SPNs. Here, we present a new general-purpose Python library called LibSPN, which aims to become such a platform. The library is designed to make it straightforward and effortless to apply various SPN architectures to large-scale datasets and problems. 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 in multiple domains. We describe the design and benefits of LibSPN, give several use-case examples, and demonstrate the applicability of the library



Publications

A. Pronobis, A. Ranganath and RP. 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. [PDF]