deeprob-kit

A Python Library for Deep Probabilistic Modeling

https://github.com/deeprob-org/deeprob-kit

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

normalizing-flows probabilistic-circuits probabilistic-models sum-product-networks
Last synced: 6 months ago · JSON representation ·

Repository

A Python Library for Deep Probabilistic Modeling

Basic Info
Statistics
  • Stars: 61
  • Watchers: 3
  • Forks: 9
  • Open Issues: 5
  • Releases: 0
Topics
normalizing-flows probabilistic-circuits probabilistic-models sum-product-networks
Created over 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

[!WARNING] This repository is deprecated in favour of the cirkit framework. Please have a look at it for your project.

MIT license PyPI version codecov Continuous Integration Documentation Status

Logo

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 Email 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
enhancement (8) bug (7) documentation (3) good first issue (2) wontfix (1) question (1)
Pull Request Labels
enhancement (6) bug (6) documentation (5) good first issue (1)

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

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 38 Last month
Rankings
Stargazers count: 8.8%
Dependent packages count: 10.1%
Forks count: 11.9%
Average: 18.3%
Dependent repos count: 21.6%
Downloads: 39.3%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v2 composite
pyproject.toml pypi
  • joblib *
  • matplotlib *
  • networkx <2.8.3
  • numpy *
  • pydot *
  • scikit-learn <1.2.0
  • scipy *
  • torch *
  • torchvision *
  • tqdm *