deeprob-kit
A Python Library for Deep Probabilistic Modeling
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, springer.com -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.4%) to scientific vocabulary
Keywords
Repository
A Python Library for Deep Probabilistic Modeling
Basic Info
- Host: GitHub
- Owner: deeprob-org
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://deeprob-kit.readthedocs.io/en/latest/
- Size: 322 KB
Statistics
- Stars: 61
- Watchers: 3
- Forks: 9
- Open Issues: 5
- Releases: 0
Topics
Metadata Files
README.md
[!WARNING] This repository is deprecated in favour of the cirkit framework. Please have a look at it for your project.
DeeProb-kit
DeeProb-kit is a unified library written in Python consisting of a collection of deep probabilistic models (DPMs) that are tractable and exact representations for the modelled probability distributions. The availability of a representative selection of DPMs in a single library makes it possible to combine them in a straightforward manner, a common practice in deep learning research nowadays. In addition, it includes efficiently implemented learning techniques, inference routines, statistical algorithms, and provides high-quality fully-documented APIs. The development of DeeProb-kit will help the community to accelerate research on DPMs as well as to standardise their evaluation and better understand how they are related based on their expressivity.
Features
- Inference algorithms for SPNs. [^1] [^4]
- Learning algorithms for SPNs structure. [^1] [^2] [^3] [^4] [^5]
- Chow-Liu Trees (CLT) as SPN leaves. [^13]
- Cutset Networks (CNets) with various learning criteria. [^12]
- Batch Expectation-Maximization (EM) for SPNs with arbitrarily leaves. [^14] [^15]
- Structural marginalization and pruning algorithms for SPNs.
- High-order moments computation for SPNs.
- JSON I/O operations for SPNs and CLTs. [^4]
- Plotting operations based on NetworkX for SPNs and CLTs. [^4]
- Randomized And Tensorized SPNs (RAT-SPNs). [^6]
- Deep Generalized Convolutional SPNs (DGC-SPNs). [^11]
- Masked Autoregressive Flows (MAFs). [^7]
- Real Non-Volume-Preserving (RealNVP) flows. [^8]
- Non-linear Independent Component Estimation (NICE) flows. [^9]
The collection of implemented models is summarized in the following table.
| Model | Description | |-------------|----------------------------------------------------| | Binary-CLT | Binary Chow-Liu Tree (CLT) | | Binary-CNet | Binary Cutset Network (CNet) | | SPN | Vanilla Sum-Product Network | | MSPN | Mixed Sum-Product Network | | XPC | Random Probabilistic Circuit | | RAT-SPN | Randomized and Tensorized Sum-Product Network | | DGC-SPN | Deep Generalized Convolutional Sum-Product Network | | MAF | Masked Autoregressive Flow | | NICE | Non-linear Independent Components Estimation Flow | | RealNVP | Real-valued Non-Volume-Preserving Flow |
Installation
The library can be installed either from PIP repository or by source code. ```shell
Install from PIP repository
pip install deeprob-kit
shell
Install from main git branch
pip install -e git+https://github.com/deeprob-org/deeprob-kit.git@main#egg=deeprob-kit ```
Project Directories
The documentation is generated automatically by Sphinx using sources stored in the docs directory.
A collection of code examples and experiments can be found in the examples and experiments directories respectively. Moreover, benchmark code can be found in the benchmark directory.
Cite
@misc{loconte2022deeprob,
doi = {10.48550/ARXIV.2212.04403},
url = {https://arxiv.org/abs/2212.04403},
author = {Loconte, Lorenzo and Gala, Gennaro},
title = {{DeeProb-kit}: a Python Library for Deep Probabilistic Modelling},
publisher = {arXiv},
year = {2022}
}
Related Repositories
References
[^1]: Peharz et al. On Theoretical Properties of Sum-Product Networks. AISTATS (2015). [^2]: Poon and Domingos. Sum-Product Networks: A New Deep Architecture. UAI (2011). [^3]: Molina, Vergari et al. Mixed Sum-Product Networks: A Deep Architecture for Hybrid Domains. AAAI (2018). [^4]: Molina, Vergari et al. SPFLOW : An easy and extensible library for deep probabilistic learning using Sum-Product Networks. CoRR (2019). [^5]: Di Mauro et al. Sum-Product Network structure learning by efficient product nodes discovery. AIxIA (2018). [^6]: Peharz et al. Probabilistic Deep Learning using Random Sum-Product Networks. UAI (2020). [^7]: Papamakarios et al. Masked Autoregressive Flow for Density Estimation. NeurIPS (2017). [^8]: Dinh et al. Density Estimation using RealNVP. ICLR (2017). [^9]: Dinh et al. NICE: Non-linear Independent Components Estimation. ICLR (2015). [^10]: Papamakarios, Nalisnick et al. Normalizing Flows for Probabilistic Modeling and Inference. JMLR (2021). [^11]: Van de Wolfshaar and Pronobis. Deep Generalized Convolutional Sum-Product Networks for Probabilistic Image Representations. PGM (2020). [^12]: Rahman et al. Cutset Networks: A Simple, Tractable, and Scalable Approach for Improving the Accuracy of Chow-Liu Trees. ECML-PKDD (2014). [^13]: Di Mauro, Gala et al. Random Probabilistic Circuits. UAI (2021). [^14]: Desana and Schnörr. Learning Arbitrary Sum-Product Network Leaves with Expectation-Maximization. CoRR (2016). [^15]: Peharz et al. Einsum Networks: Fast and Scalable Learning of Tractable Probabilistic Circuits. ICML (2020).
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this library, please cite it as below." authors: - family-names: "Loconte" given-names: "Lorenzo" - family-names: "Gala" given-names: "Gennaro" title: "DeeProb-kit: a Python Library for Deep Probabilistic Modelling" version: 1.1.0 doi: 10.48550/arXiv.2212.04403 date-released: 2021-12-09 license: MIT url: "https://github.com/deeprob-org/deeprob-kit"
GitHub Events
Total
- Watch event: 3
- Push event: 1
- Fork event: 1
Last Year
- Watch event: 3
- Push event: 1
- Fork event: 1
Committers
Last synced: almost 3 years ago
All Time
- Total Commits: 92
- Total Committers: 3
- Avg Commits per committer: 30.667
- Development Distribution Score (DDS): 0.076
Top Committers
| Name | Commits | |
|---|---|---|
| loreloc | l****e@o****t | 85 |
| Yang Yang | y****e@g****m | 6 |
| federico_luzzi | 4****3@u****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 23
- Total pull requests: 20
- Average time to close issues: 29 days
- Average time to close pull requests: 2 days
- Total issue authors: 6
- Total pull request authors: 4
- Average comments per issue: 0.39
- Average comments per pull request: 0.25
- Merged pull requests: 19
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- loreloc (16)
- gengala (2)
- equaeghe (2)
- trappmartin (1)
- impredicative (1)
- remilvus (1)
Pull Request Authors
- loreloc (17)
- fedous (1)
- remilvus (1)
- yangyang-pro (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 38 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 2
- Total maintainers: 1
pypi.org: deeprob-kit
A Python Library for Deep Probabilistic Modeling
- Homepage: https://github.com/deeprob-org/deeprob-kit
- Documentation: https://deeprob-kit.readthedocs.io/
- License: MIT License
-
Latest release: 1.1.0
published about 4 years ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v2 composite
- joblib *
- matplotlib *
- networkx <2.8.3
- numpy *
- pydot *
- scikit-learn <1.2.0
- scipy *
- torch *
- torchvision *
- tqdm *