{ "info": { "author": "Andrzej Pronobis, Avinash Raganath, Jos van de Wolfshaar", "author_email": "a.pronobis@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "\n# LibSPN\n\nLibSPN is a library for learning and inference with Sum-Product Networks. LibSPN\nis integrated with [TensorFlow](http://www.tensorflow.org).\n\n## What are SPNs?\n\nSum-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.\n\n\n## Why LibSPN?\n\nSeveral reasons:\n\n\n* 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\n* 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\n* LibSPN is integrated with TensorFlow, making it possible to combine SPNs with other deep learning methods\n* LibSPN uses concepts that should sound familiar to TensorFlow users (e.g. tensors, variables, feeding, queues, batching, TensorBoard etc.)\n* LibSPN leverages the power of TensorFlow to efficiently perform parallel computations on (multiple) GPU devices\n* LibSPN is extendable, making it easy to add custom operations and graph nodes\n\n## Installation\n\n### Prerequisites\nLibSPN requires installing `tensorflow` and `tensorflow-probability` first. The table below shows\nwhich version of each you'd need if you want to be specific:\n\n| `tensorflow` | `tensorflow-probability` |\n|:-------------:|:------------------------:|\n| 1.14 | 0.7.0 |\n| 1.13 | 0.6.0 |\n| 1.12 | 0.5.0 |\n| 1.11 | 0.4.0 |\n\nFirst, install `tensorflow` or `tensorflow-gpu`:\n```bash\npip install tensorflow-gpu\n```\nThen, install `tensorflow-probability`:\n```bash\npip install tensorflow-probability\n```\n\n### LibSPN\nLibSPN is also available on `pypi`:\n```bash\npip install libspn\n```\n\nFeatures of LibSPN\n------------------\n\n\n* Simple interface for manual creation of custom network architectures\n * Automatic SPN validity checking and scope calculation\n * Adding explicit latent variables to sums/mixtures\n * Weight sharing\n\n* Integration with TensorFlow\n * SPN graph is converted to TensorFlow graph realizing specific algorithms/computations\n * Inputs to the network come from TensorFlow feeds or any TensorFlow tensors\n\n* SPN structure generation and learning\n * Dense random SPN generator\n * Simple naive Bayes mixture model generator\n\n* Loading and saving of structure and weights of learned models\n\n* Simple interface for random data generation, data loading and batching\n * Random data sampling from Gaussian Mixtures\n * Using TensorFlow queues for data loading, shuffling and batching\n\n* Built-in visualizations\n * SPN graph structure visualization\n * Data/distribution visualizations\n\n* SPN Inference\n * SPN/MPN value calculation\n * Gradient calculation\n * Inferring MPE state\n\n\nPapers using LibSPN\n-------------------\n\n\n* [Deep Convolutional Sum-Product Networks for Probabilistic Image Representations](https://arxiv.org/abs/1902.06155) _Jos van de Wolfshaar, Andrzej Pronobis_ (2019).\n* [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)\n* [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)\n* [Learning Deep Generative Spatial Models For Mobile Robots](https://ieeexplore.ieee.org/document/8202235/) _Andrzej Pronobis, Rajesh P. N. Rao_ (2017)\n* [Learning Semantic Maps With Topological Reasoning](https://arxiv.org/abs/1709.08274) _Kaiyu Zheng, Andrzej Pronobis, Rajesh P. N. Rao_ (2017)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.libspn.org", "keywords": "libspn spn deep-learning deep-learning-library machine-learning machine-learning-library tensorflow", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "libspn", "package_url": "https://pypi.org/project/libspn/", "platform": "", "project_url": "https://pypi.org/project/libspn/", "project_urls": { "Homepage": "http://www.libspn.org" }, "release_url": "https://pypi.org/project/libspn/0.1.2/", "requires_dist": [ "tqdm", "numpy", "scipy", "matplotlib", "pillow", "pyyaml" ], "requires_python": "", "summary": "LibSPN is a TensorFlow-based library for building and training Sum-Product Networks.", "version": "0.1.2" }, "last_serial": 5502307, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "b65b7d7056dce9d9fbd9818518161b6f", "sha256": "b739e054a905f83ca84d8ad48bc10611b26682530c3e3bd262bb311d8acae799" }, "downloads": -1, "filename": "libspn-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b65b7d7056dce9d9fbd9818518161b6f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 166501, "upload_time": "2019-07-08T17:39:05", "url": "https://files.pythonhosted.org/packages/c2/3f/2dffe0503f6900b2c9bd3772ffdf16629a1504d8baa0889d6f5f24866768/libspn-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28933bf4566fe4df80d88d97bd854893", "sha256": "7d1998f2dd780d2cb383e2c3052f52fdf923db92fa42f37158c7550ecdae0302" }, "downloads": -1, "filename": "libspn-0.1.2.tar.gz", "has_sig": false, "md5_digest": "28933bf4566fe4df80d88d97bd854893", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12040141, "upload_time": "2019-07-08T17:39:35", "url": "https://files.pythonhosted.org/packages/f9/4a/d09b9bcc83d8face0330b767cebd8eb2fa4a52a40c50ea08de7f53357c86/libspn-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b65b7d7056dce9d9fbd9818518161b6f", "sha256": "b739e054a905f83ca84d8ad48bc10611b26682530c3e3bd262bb311d8acae799" }, "downloads": -1, "filename": "libspn-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b65b7d7056dce9d9fbd9818518161b6f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 166501, "upload_time": "2019-07-08T17:39:05", "url": "https://files.pythonhosted.org/packages/c2/3f/2dffe0503f6900b2c9bd3772ffdf16629a1504d8baa0889d6f5f24866768/libspn-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28933bf4566fe4df80d88d97bd854893", "sha256": "7d1998f2dd780d2cb383e2c3052f52fdf923db92fa42f37158c7550ecdae0302" }, "downloads": -1, "filename": "libspn-0.1.2.tar.gz", "has_sig": false, "md5_digest": "28933bf4566fe4df80d88d97bd854893", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12040141, "upload_time": "2019-07-08T17:39:35", "url": "https://files.pythonhosted.org/packages/f9/4a/d09b9bcc83d8face0330b767cebd8eb2fa4a52a40c50ea08de7f53357c86/libspn-0.1.2.tar.gz" } ] }