Metadata-Version: 2.1
Name: libspn
Version: 0.1.2
Summary: LibSPN is a TensorFlow-based library for building and training Sum-Product Networks.
Home-page: http://www.libspn.org
Author: Andrzej Pronobis, Avinash Raganath, Jos van de Wolfshaar
Author-email: a.pronobis@gmail.com
License: MIT
Description: 
        # LibSPN
        
        LibSPN is a library for learning and inference with Sum-Product Networks. LibSPN
        is integrated with [TensorFlow](http://www.tensorflow.org).
        
        ## What are SPNs?
        
        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. LibSPN is a new general-purpose Python library, 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.
        
        
        ## Why LibSPN?
        
        Several reasons:
        
        
        * LibSPN is a general-purpose library with a generic interface and tools for generating SPN structure, making it easy to apply SPNs to any domain/problem
        * LibSPN offers a simple Python interface for building or generating networks, learning, and inference, facilitating prototyping (e.g. in Jupyter) and enabling simple integration of SPNs with other software
        * LibSPN is integrated with TensorFlow, making it possible to combine SPNs with other deep learning methods
        * LibSPN uses concepts that should sound familiar to TensorFlow users (e.g. tensors, variables, feeding, queues, batching, TensorBoard etc.)
        * LibSPN leverages the power of TensorFlow to efficiently perform parallel computations on (multiple) GPU devices
        * LibSPN is extendable, making it easy to add custom operations and graph nodes
        
        ## Installation
        
        ### Prerequisites
        LibSPN requires installing `tensorflow` and `tensorflow-probability` first. The table below shows
        which version of each you'd need if you want to be specific:
        
        | `tensorflow`  | `tensorflow-probability` |
        |:-------------:|:------------------------:|
        |      1.14     |           0.7.0          |
        |      1.13     |           0.6.0          |
        |      1.12     |           0.5.0          |
        |      1.11     |           0.4.0          |
        
        First, install `tensorflow` or `tensorflow-gpu`:
        ```bash
        pip install tensorflow-gpu
        ```
        Then, install `tensorflow-probability`:
        ```bash
        pip install tensorflow-probability
        ```
        
        ### LibSPN
        LibSPN is also available on `pypi`:
        ```bash
        pip install libspn
        ```
        
        Features of LibSPN
        ------------------
        
        
        * Simple interface for manual creation of custom network architectures
          * Automatic SPN validity checking and scope calculation
          * Adding explicit latent variables to sums/mixtures
          * Weight sharing
        
        * Integration with TensorFlow
          * SPN graph is converted to TensorFlow graph realizing specific algorithms/computations
          * Inputs to the network come from TensorFlow feeds or any TensorFlow tensors
        
        * SPN structure generation and learning
          * Dense random SPN generator
          * Simple naive Bayes mixture model generator
        
        * Loading and saving of structure and weights of learned models
        
        * Simple interface for random data generation, data loading and batching
          * Random data sampling from Gaussian Mixtures
          * Using TensorFlow queues for data loading, shuffling and batching
        
        * Built-in visualizations
          * SPN graph structure visualization
          * Data/distribution visualizations
        
        * SPN Inference
          * SPN/MPN value calculation
          * Gradient calculation
          * Inferring MPE state
        
        
        Papers using LibSPN
        -------------------
        
        
        * [Deep Convolutional Sum-Product Networks for Probabilistic Image Representations](https://arxiv.org/abs/1902.06155) _Jos van de Wolfshaar, Andrzej Pronobis_ (2019).
        * [From Pixels to Buildings: End-to-end Probabilistic Deep Networks for Large-scale Semantic Mapping](https://arxiv.org/abs/1812.11866) _Kaiyu Zheng, Andrzej Pronobis_ (2018)
        * [Learning Graph-Structured Sum-Product Networks for Probabilistic Semantic Maps](https://www.aaai.org/ocs/index.php/AAAI/AAAI18/paper/view/16923) _Kaiyu Zheng, Andrzej Pronobis, Rajesh P. N. Rao_ (2018)
        * [Learning Deep Generative Spatial Models For Mobile Robots](https://ieeexplore.ieee.org/document/8202235/) _Andrzej Pronobis, Rajesh P. N. Rao_ (2017)
        * [Learning Semantic Maps With Topological Reasoning](https://arxiv.org/abs/1709.08274) _Kaiyu Zheng, Andrzej Pronobis, Rajesh P. N. Rao_ (2017)
        
Keywords: libspn spn deep-learning deep-learning-library machine-learning machine-learning-library tensorflow
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Libraries
Classifier: License :: OSI Approved :: MIT License
Description-Content-Type: text/markdown
