<br>
<p align="center">
<img width="400px" src="./docs/assets/img/logo.png"/>
</p>
<br>
<div align="center">
<b><i>Probabilistic programming with Gen, built on top of JAX.</i></b>
</div>
<br>
<div align="center">
[![][jax_badge]](https://github.com/google/jax)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![Public API: beartyped](https://raw.githubusercontent.com/beartype/beartype-assets/main/badge/bear-ified.svg?style=flat-square)](https://beartype.readthedocs.io)
| **Documentation** | **Build status** |
| :---------------: | :--------------------------------: |
| [![](https://img.shields.io/badge/docs-stable-blue.svg?style=flat-square)](https://probcomp.github.io/genjax/) [![](https://img.shields.io/badge/jupyter-%23FA0F00.svg?style=flat-square&logo=jupyter&logoColor=white)](https://probcomp.github.io/genjax/notebooks/) | [![][main_build_action_badge]][main_build_status_url] [![][nightly_build_action_badge]][nightly_build_status_url] |
</div>
[main_build_action_badge]: https://github.com/probcomp/genjax/actions/workflows/ci.yml/badge.svg?style=flat-square&branch=main
[nightly_build_action_badge]: https://github.com/probcomp/genjax/actions/workflows/ci.yml/badge.svg?style=flat-square&branch=nightly
[actions]: https://github.com/probcomp/genjax/actions
[main_build_status_url]: https://github.com/probcomp/genjax/actions/workflows/ci.yml?query=branch%3Amain
[nightly_build_status_url]: https://github.com/probcomp/genjax/actions/workflows/ci.yml?query=branch%3Anightly
<div align="center">
<b>(Early stage)</b> 🔪 expect sharp edges 🔪
</div>
## 🔎 What is GenJAX?
Gen is a multi-paradigm (generative, differentiable, incremental) language for probabilistic programming focused on [**generative functions**: computational objects which represent probability measures over structured sample spaces](https://probcomp.github.io/genjax/notebooks/concepts/introduction/intro_to_genjax.html#what-is-a-generative-function).
GenJAX is an implementation of Gen on top of [JAX](https://github.com/google/jax) - exposing the ability to programmatically construct and manipulate generative functions, as well as [JIT compile + auto-batch inference computations using generative functions onto GPU devices](https://jax.readthedocs.io/en/latest/jax-101/02-jitting.html).
<div align="center">
<a href="https://probcomp.github.io/genjax/notebooks/index.html">Jump into the notebooks!</a>
<br>
<br>
</div>
> GenJAX is part of a larger ecosystem of probabilistic programming tools based upon Gen. [Explore more...](https://www.gen.dev/)
## Quickstart
Install GenJAX via [PyPI](https://pypi.org/project/genjax/):
```sh
pip install genjax
```
Then install [JAX](https://github.com/google/jax) using [this
guide](https://jax.readthedocs.io/en/latest/installation.html) to choose the
command for the architecture you're targeting. To run GenJAX without GPU
support:
```sh
pip install jax[cpu]==0.4.20
```
On a Linux machine with a GPU, run either of the following commands, depending
on which CUDA version (11 or 12) you have installed:
```sh
pip install jax[cuda11_pip]==0.4.20
pip install jax[cuda12_pip]==0.4.20
```
The following code snippet defines a generative function called `beta_bernoulli` that
- takes a shape parameter `beta`
- uses this to create and draw a value `p` from a [Beta
distribution](https://en.wikipedia.org/wiki/Beta_distribution)
- Flips a coin that returns 1 with probability `p`, 0 with probability `1-p` and
returns that value
JIT-compiles the function with JAX and then runs it with GenJAX:
```python
import genjax
import jax
@genjax.static
def beta_bernoulli(beta):
p = genjax.beta(0.0, beta) @ "p"
v = genjax.bernoulli(p) @ "v"
return v
key = jax.random.PRNGKey(314159)
trace = jax.jit(beta_bernoulli.simulate)(key, (0.5, ))
choices = trace.get_choices()
```
`choices` is a record of all random choices made during the execution of the
generative function `beta_bernoulli`. Print it with a `genjax.console()`
instance:
```python
console = genjax.console()
console.print(choices)
```
resulting in:
```
(HierarchicalChoiceMap)
├── :p
│ └── (ValueChoice)
│ └── f32[]
└── :v
└── (ValueChoice)
└── i32[]
```
## References
Many bits of knowledge have gone into this project -- [you can find many of these bits at the MIT Probabilistic Computing Project page](http://probcomp.csail.mit.edu/) under publications. Here's an abbreviated list of high value references:
- [Marco Cusumano-Towner's thesis on Gen][marco_thesis]
- [The main Gen.jl repository][gen_jl]
- (Trace types) [(Lew et al) trace types][trace_types]
- (RAVI) [(Lew et al) Recursive auxiliary-variable inference][ravi]
- (GenSP) [Alex Lew's Gen.jl implementation of GenSP][gen_sp]
- (ADEV) [(Lew & Huot, et al) Automatic differentiation of expected values of probabilistic programs][adev]
### JAX influences
This project has several JAX-based influences. Here's an abbreviated list:
- [This notebook on static dispatch (Dan Piponi)][effect_handling_interp]
- [Equinox (Patrick Kidger's work on neural networks via callable Pytrees)][equinox]
- [Oryx (interpreters and interpreter design)][oryx]
### Acknowledgements
The maintainers of this library would like to acknowledge the JAX and Oryx maintainers for useful discussions and reference code for interpreter-based transformation patterns.
---
<div align="center">
Created and maintained by the <a href="http://probcomp.csail.mit.edu/">MIT Probabilistic Computing Project</a>. All code is licensed under the <a href="LICENSE">Apache 2.0 License</a>.
</div>
[marco_thesis]: https://www.mct.dev/assets/mct-thesis.pdf
[gen_jl]: https://github.com/probcomp/Gen.jl
[trace_types]: https://dl.acm.org/doi/10.1145/3371087
[adev]: https://arxiv.org/abs/2212.06386
[ravi]: https://arxiv.org/abs/2203.02836
[gen_sp]: https://github.com/probcomp/GenSP.jl
[effect_handling_interp]: https://colab.research.google.com/drive/1HGs59anVC2AOsmt7C4v8yD6v8gZSJGm6#scrollTo=ukjVJ2Ls_6Q3
[equinox]: https://github.com/patrick-kidger/equinox
[oryx]: https://github.com/jax-ml/oryx
[jax_badge]: https://img.shields.io/badge/JAX-Accelerated-9cf.svg?style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAaCAYAAAAjZdWPAAAIx0lEQVR42rWWBVQbWxOAkefur%2B7u3les7u7F3ZIQ3N2tbng8aXFC0uAuKf2hmlJ3AapIgobMv7t0w%2Ba50JzzJdlhlvNldubeq%2FY%2BXrTS1z%2B6sttrKfQOOY4ns13ecFImb47pVvIkukNe4y3Junr1kSZ%2Bb3Na248tx7rKiHlPo6Ryse%2F11NKQuk%2FV3tfL52yHtXm8TGYS1wk4J093wrPQPngRJH9HH1x2fAjMhcIeIaXKQCmd2Gn7IqSvG83BueT0CMkTyESUqm3vRRggTdOBIb1HFDaNl8Gdg91AFGkO7QXe8gJInpoDjEXC9gbhtWH3rjZ%2F9yK6t42Y9zyiC1iLhZA8JQe4eqKXklrJF0MqfPv2bc2wzPZjpnEyMEVlEZCKQzYCJhE8QEtIL1RaXEVFEGmEaTn96VuLDzWflLFbgvqUec3BPVBmeBnNwUiakq1I31UcPaTSR8%2B1LnditsscaB2A48K6D9SoZDD2O6bELvA0JGhl4zIYZzcWtD%2BMfdvdHNsDOHciXwBPN18lj7sy79qQCTNK3nxBZXakqbZFO2jHskA7zBs%2BJhmDmr0RhoadIZjYxKIVHpCZngPMZUKoQKrfEoz1PfZZdKAe2CvP4XnYE8k2LLMdMumwrLaNlomyVqK0UdwN%2BD7AAz73dYBpPg6gPiCN8TXFHCI2s7AWYesJgTabD%2FS5uXDTuwVaAvvghncTdk1DYGkL0daAs%2BsLiutLrn0%2BRMNXpunC7mgkCpshfbw4OhrUvMkYo%2F0c4XtHS1waY4mlG6To8oG1TKjs78xV5fAkSgqcZSL0GoszfxEAW0fUludRNWlIhGsljzVjctr8rJOkCpskKaDYIlgkVoCmF0kp%2FbW%2FU%2F%2B8QNdXPztbAc4kFxIEmNGwKuI9y5gnBMH%2BakiZxlfGaLP48kyj4qPFkeIPh0Q6lt861zZF%2BgBpDcAxT3gEOjGxMDLQRSn9XaDzPWdOstkEN7uez6jmgLOYilR7NkFwLh%2B4G0SQMnMwRp8jaCrwEs8eEmFW2VsNd07HQdP4TgWxNTYcFcKHPhRYFOWLfJJBE5FefTQsWiKRaOw6FBr6ob1RP3EoqdbHsWFDwAYvaVI28DaK8AHs51tU%2BA3Z8CUXvZ1jnSR7SRS2SnwKw4O8B1rCjwrjgt1gSrjXnWhBxjD0Hidm4vfj3e3riUP5PcUCYlZxsYFDK41XnLlUANwVeeILFde%2BGKLhk3zgyZNeQjcSHPMEKSyPPQKfIcKfIqCf8yN95MGZZ1bj98WJ%2BOorQzxsPqcYdX9orw8420jBQNfJVVmTOStEUqFz5dq%2F2tHUY3LbjMh0qYxCwCGxRep8%2FK4ZnldzuUkjJLPDhkzrUFBoHYBjk3odtNMYoJVGx9BG2JTNVehksmRaGUwMbYQITk3Xw9gOxbNoGaA8RWjwuQdsXdGvpdty7Su2%2Fqn0qbzWsXYp0nqVpet0O6zzugva1MZHUdwHk9G8aH7raHua9AIxzzjxDaw4w4cpvEQlM84kwdI0hkpsPpcOtUeaVM8hQT2Qtb4ckUbaYw4fXzGAqSVEd8CGpqamj%2F9Q2pPX7miW0NlHlDE81AxLSI2wyK6xf6vfrcgEwb0PAtPaHM1%2BNXzGXAlMRcUIrMpiE6%2Bxv0cyxSrC6FmjzvkWJE3OxpY%2BzmpsANFBxK6RuIJvXe7bUHNd4zfCwvPPh9unSO%2BbIL2JY53QDqvdbsEi2%2BuwEEHPsfFRdOqjHcjTaCLmWdBewtKzHEwKZynSGgtTaSqx7dwMeBLRhR1LETDhu76vgTFfMLi8zc8F7hoRPpAYjAWCp0Jy5dzfSEfltGU6M9oVCIATnPoGKImDUJNfK0JS37QTc9yY7eDKzIX5wR4wN8RTya4jETAvZDCmFeEPwhNXoOlQt5JnRzqhxLZBpY%2BT5mZD3M4MfLnDW6U%2Fy6jkaDXtysDm8vjxY%2FXYnLebkelXaQtSSge2IhBj9kjMLF41duDUNRiDLHEzfaigsoxRzWG6B0kZ2%2BoRA3dD2lRa44ZrM%2FBW5ANziVApGLaKCYucXOCEdhoew5Y%2Btu65VwJqxUC1j4lav6UwpIJfnRswQUIMawPSr2LGp6WwLDYJ2TwoMNbf6Tdni%2FEuNvAdEvuUZAwFERLVXg7pg9xt1djZgqV7DmuHFGQI9Sje2A9dR%2FFDd0osztIRYnln1hdW1dff%2B1gtNLN1u0ViZy9BBlu%2BzBNUK%2BrIaP9Nla2TG%2BETHwq2kXzmS4XxXmSVan9KMYUprrbgFJqCndyIw9fgdh8dMvzIiW0sngbxoGlniN6LffruTEIGE9khBw5T2FDmWlTYqrnEPa7aF%2FYYcPYiUE48Ul5jhP82tj%2FiESyJilCeLdQRpod6No3xJNNHeZBpOBsiAzm5rg2dBZYSyH9Hob0EOFqqh3vWOuHbFR5eXcORp4OzwTUA4rUzVfJ4q%2FIa1GzCrzjOMxQr5uqLAWUOwgaHOphrgF0r2epYh%2FytdjBmUAurfM6CxruT3Ee%2BDv2%2FHAwK4RUIPskqK%2Fw4%2FR1F1bWfHjbNiXcYl6RwGJcMOMdXZaEVxCutSN1SGLMx3JfzCdlU8THZFFC%2BJJuB2964wSGdmq3I2FEcpWYVfHm4jmXd%2BRn7agFn9oFaWGYhBmJs5v5a0LZUjc3Sr4Ep%2FmFYlX8OdLlFYidM%2B731v7Ly4lfu85l3SSMTAcd5Bg2Sl%2FIHBm3RuacVx%2BrHpFcWjxztavOcOBcTnUhwekkGlsfWEt2%2FkHflB7WqKomGvs9F62l7a%2BRKQQQtRBD9VIlZiLEfRBRfQEmDb32cFQcSjznUP3um%2FkcbV%2BjmNEvqhOQuonjoQh7QF%2BbK811rduN5G6ICLD%2BnmPbi0ur2hrDLKhQYiwRdQrvKjcp%2F%2BL%2BnTz%2Fa4FgvmakvluPMMxbL15Dq5MTYAhOxXM%2FmvEpsoWmtfP9RxnkAIAr%2F5pVxqPxH93msKodRSXIct2l0OU0%2FL4eY506L%2B3GyJ6UMEZfjjCDbysNcWWmFweJP0Jz%2FA0g2gk80pGkYAAAAAElFTkSuQmCC
Raw data
{
"_id": null,
"home_page": "https://github.com/probcomp/genjax",
"name": "GenJAX",
"maintainer": "McCoy R. Becker",
"docs_url": null,
"requires_python": ">=3.9,<3.13",
"maintainer_email": "mccoyb@mit.edu",
"keywords": "artificial-intelligence,probabilistic-programming,bayesian-inference,differentiable-programming",
"author": "McCoy R. Becker",
"author_email": "mccoyb@mit.edu",
"download_url": "https://files.pythonhosted.org/packages/74/f2/b8430f4911f28abb8cc8b562d1bcde639ec43e9d777fab9696160f2caeb7/genjax-0.1.0.tar.gz",
"platform": null,
"description": "<br>\n<p align=\"center\">\n<img width=\"400px\" src=\"./docs/assets/img/logo.png\"/>\n</p>\n<br>\n\n<div align=\"center\">\n<b><i>Probabilistic programming with Gen, built on top of JAX.</i></b>\n</div>\n<br>\n\n<div align=\"center\">\n\n[![][jax_badge]](https://github.com/google/jax)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![Public API: beartyped](https://raw.githubusercontent.com/beartype/beartype-assets/main/badge/bear-ified.svg?style=flat-square)](https://beartype.readthedocs.io)\n\n| **Documentation** | **Build status** |\n| :---------------: | :--------------------------------: |\n| [![](https://img.shields.io/badge/docs-stable-blue.svg?style=flat-square)](https://probcomp.github.io/genjax/) [![](https://img.shields.io/badge/jupyter-%23FA0F00.svg?style=flat-square&logo=jupyter&logoColor=white)](https://probcomp.github.io/genjax/notebooks/) | [![][main_build_action_badge]][main_build_status_url] [![][nightly_build_action_badge]][nightly_build_status_url] |\n\n</div>\n\n[main_build_action_badge]: https://github.com/probcomp/genjax/actions/workflows/ci.yml/badge.svg?style=flat-square&branch=main\n[nightly_build_action_badge]: https://github.com/probcomp/genjax/actions/workflows/ci.yml/badge.svg?style=flat-square&branch=nightly\n[actions]: https://github.com/probcomp/genjax/actions\n[main_build_status_url]: https://github.com/probcomp/genjax/actions/workflows/ci.yml?query=branch%3Amain\n[nightly_build_status_url]: https://github.com/probcomp/genjax/actions/workflows/ci.yml?query=branch%3Anightly\n\n\n<div align=\"center\">\n<b>(Early stage)</b> \ud83d\udd2a expect sharp edges \ud83d\udd2a\n</div>\n\n## \ud83d\udd0e What is GenJAX?\n\nGen is a multi-paradigm (generative, differentiable, incremental) language for probabilistic programming focused on [**generative functions**: computational objects which represent probability measures over structured sample spaces](https://probcomp.github.io/genjax/notebooks/concepts/introduction/intro_to_genjax.html#what-is-a-generative-function).\n\nGenJAX is an implementation of Gen on top of [JAX](https://github.com/google/jax) - exposing the ability to programmatically construct and manipulate generative functions, as well as [JIT compile + auto-batch inference computations using generative functions onto GPU devices](https://jax.readthedocs.io/en/latest/jax-101/02-jitting.html).\n\n<div align=\"center\">\n<a href=\"https://probcomp.github.io/genjax/notebooks/index.html\">Jump into the notebooks!</a>\n<br>\n<br>\n</div>\n\n> GenJAX is part of a larger ecosystem of probabilistic programming tools based upon Gen. [Explore more...](https://www.gen.dev/)\n\n## Quickstart\n\nInstall GenJAX via [PyPI](https://pypi.org/project/genjax/):\n\n```sh\npip install genjax\n```\n\nThen install [JAX](https://github.com/google/jax) using [this\nguide](https://jax.readthedocs.io/en/latest/installation.html) to choose the\ncommand for the architecture you're targeting. To run GenJAX without GPU\nsupport:\n\n```sh\npip install jax[cpu]==0.4.20\n```\n\nOn a Linux machine with a GPU, run either of the following commands, depending\non which CUDA version (11 or 12) you have installed:\n\n```sh\npip install jax[cuda11_pip]==0.4.20\npip install jax[cuda12_pip]==0.4.20\n```\n\nThe following code snippet defines a generative function called `beta_bernoulli` that\n\n- takes a shape parameter `beta`\n- uses this to create and draw a value `p` from a [Beta\n distribution](https://en.wikipedia.org/wiki/Beta_distribution)\n- Flips a coin that returns 1 with probability `p`, 0 with probability `1-p` and\n returns that value\n\nJIT-compiles the function with JAX and then runs it with GenJAX:\n\n```python\nimport genjax\nimport jax\n\n@genjax.static\ndef beta_bernoulli(beta):\n p = genjax.beta(0.0, beta) @ \"p\"\n v = genjax.bernoulli(p) @ \"v\"\n return v\n\nkey = jax.random.PRNGKey(314159)\ntrace = jax.jit(beta_bernoulli.simulate)(key, (0.5, ))\nchoices = trace.get_choices()\n```\n\n`choices` is a record of all random choices made during the execution of the\ngenerative function `beta_bernoulli`. Print it with a `genjax.console()`\ninstance:\n\n```python\nconsole = genjax.console()\nconsole.print(choices)\n```\n\nresulting in:\n\n```\n(HierarchicalChoiceMap)\n\u251c\u2500\u2500 :p\n\u2502 \u2514\u2500\u2500 (ValueChoice)\n\u2502 \u2514\u2500\u2500 f32[]\n\u2514\u2500\u2500 :v\n \u2514\u2500\u2500 (ValueChoice)\n \u2514\u2500\u2500 i32[]\n```\n\n## References\n\nMany bits of knowledge have gone into this project -- [you can find many of these bits at the MIT Probabilistic Computing Project page](http://probcomp.csail.mit.edu/) under publications. Here's an abbreviated list of high value references:\n\n- [Marco Cusumano-Towner's thesis on Gen][marco_thesis]\n- [The main Gen.jl repository][gen_jl]\n- (Trace types) [(Lew et al) trace types][trace_types]\n- (RAVI) [(Lew et al) Recursive auxiliary-variable inference][ravi]\n- (GenSP) [Alex Lew's Gen.jl implementation of GenSP][gen_sp]\n- (ADEV) [(Lew & Huot, et al) Automatic differentiation of expected values of probabilistic programs][adev]\n\n### JAX influences\n\nThis project has several JAX-based influences. Here's an abbreviated list:\n\n- [This notebook on static dispatch (Dan Piponi)][effect_handling_interp]\n- [Equinox (Patrick Kidger's work on neural networks via callable Pytrees)][equinox]\n- [Oryx (interpreters and interpreter design)][oryx]\n\n### Acknowledgements\n\nThe maintainers of this library would like to acknowledge the JAX and Oryx maintainers for useful discussions and reference code for interpreter-based transformation patterns.\n\n---\n\n<div align=\"center\">\nCreated and maintained by the <a href=\"http://probcomp.csail.mit.edu/\">MIT Probabilistic Computing Project</a>. All code is licensed under the <a href=\"LICENSE\">Apache 2.0 License</a>.\n</div>\n\n[marco_thesis]: https://www.mct.dev/assets/mct-thesis.pdf\n[gen_jl]: https://github.com/probcomp/Gen.jl\n[trace_types]: https://dl.acm.org/doi/10.1145/3371087\n[adev]: https://arxiv.org/abs/2212.06386\n[ravi]: https://arxiv.org/abs/2203.02836\n[gen_sp]: https://github.com/probcomp/GenSP.jl\n[effect_handling_interp]: https://colab.research.google.com/drive/1HGs59anVC2AOsmt7C4v8yD6v8gZSJGm6#scrollTo=ukjVJ2Ls_6Q3\n[equinox]: https://github.com/patrick-kidger/equinox\n[oryx]: https://github.com/jax-ml/oryx\n[jax_badge]: https://img.shields.io/badge/JAX-Accelerated-9cf.svg?style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAaCAYAAAAjZdWPAAAIx0lEQVR42rWWBVQbWxOAkefur%2B7u3les7u7F3ZIQ3N2tbng8aXFC0uAuKf2hmlJ3AapIgobMv7t0w%2Ba50JzzJdlhlvNldubeq%2FY%2BXrTS1z%2B6sttrKfQOOY4ns13ecFImb47pVvIkukNe4y3Junr1kSZ%2Bb3Na248tx7rKiHlPo6Ryse%2F11NKQuk%2FV3tfL52yHtXm8TGYS1wk4J093wrPQPngRJH9HH1x2fAjMhcIeIaXKQCmd2Gn7IqSvG83BueT0CMkTyESUqm3vRRggTdOBIb1HFDaNl8Gdg91AFGkO7QXe8gJInpoDjEXC9gbhtWH3rjZ%2F9yK6t42Y9zyiC1iLhZA8JQe4eqKXklrJF0MqfPv2bc2wzPZjpnEyMEVlEZCKQzYCJhE8QEtIL1RaXEVFEGmEaTn96VuLDzWflLFbgvqUec3BPVBmeBnNwUiakq1I31UcPaTSR8%2B1LnditsscaB2A48K6D9SoZDD2O6bELvA0JGhl4zIYZzcWtD%2BMfdvdHNsDOHciXwBPN18lj7sy79qQCTNK3nxBZXakqbZFO2jHskA7zBs%2BJhmDmr0RhoadIZjYxKIVHpCZngPMZUKoQKrfEoz1PfZZdKAe2CvP4XnYE8k2LLMdMumwrLaNlomyVqK0UdwN%2BD7AAz73dYBpPg6gPiCN8TXFHCI2s7AWYesJgTabD%2FS5uXDTuwVaAvvghncTdk1DYGkL0daAs%2BsLiutLrn0%2BRMNXpunC7mgkCpshfbw4OhrUvMkYo%2F0c4XtHS1waY4mlG6To8oG1TKjs78xV5fAkSgqcZSL0GoszfxEAW0fUludRNWlIhGsljzVjctr8rJOkCpskKaDYIlgkVoCmF0kp%2FbW%2FU%2F%2B8QNdXPztbAc4kFxIEmNGwKuI9y5gnBMH%2BakiZxlfGaLP48kyj4qPFkeIPh0Q6lt861zZF%2BgBpDcAxT3gEOjGxMDLQRSn9XaDzPWdOstkEN7uez6jmgLOYilR7NkFwLh%2B4G0SQMnMwRp8jaCrwEs8eEmFW2VsNd07HQdP4TgWxNTYcFcKHPhRYFOWLfJJBE5FefTQsWiKRaOw6FBr6ob1RP3EoqdbHsWFDwAYvaVI28DaK8AHs51tU%2BA3Z8CUXvZ1jnSR7SRS2SnwKw4O8B1rCjwrjgt1gSrjXnWhBxjD0Hidm4vfj3e3riUP5PcUCYlZxsYFDK41XnLlUANwVeeILFde%2BGKLhk3zgyZNeQjcSHPMEKSyPPQKfIcKfIqCf8yN95MGZZ1bj98WJ%2BOorQzxsPqcYdX9orw8420jBQNfJVVmTOStEUqFz5dq%2F2tHUY3LbjMh0qYxCwCGxRep8%2FK4ZnldzuUkjJLPDhkzrUFBoHYBjk3odtNMYoJVGx9BG2JTNVehksmRaGUwMbYQITk3Xw9gOxbNoGaA8RWjwuQdsXdGvpdty7Su2%2Fqn0qbzWsXYp0nqVpet0O6zzugva1MZHUdwHk9G8aH7raHua9AIxzzjxDaw4w4cpvEQlM84kwdI0hkpsPpcOtUeaVM8hQT2Qtb4ckUbaYw4fXzGAqSVEd8CGpqamj%2F9Q2pPX7miW0NlHlDE81AxLSI2wyK6xf6vfrcgEwb0PAtPaHM1%2BNXzGXAlMRcUIrMpiE6%2Bxv0cyxSrC6FmjzvkWJE3OxpY%2BzmpsANFBxK6RuIJvXe7bUHNd4zfCwvPPh9unSO%2BbIL2JY53QDqvdbsEi2%2BuwEEHPsfFRdOqjHcjTaCLmWdBewtKzHEwKZynSGgtTaSqx7dwMeBLRhR1LETDhu76vgTFfMLi8zc8F7hoRPpAYjAWCp0Jy5dzfSEfltGU6M9oVCIATnPoGKImDUJNfK0JS37QTc9yY7eDKzIX5wR4wN8RTya4jETAvZDCmFeEPwhNXoOlQt5JnRzqhxLZBpY%2BT5mZD3M4MfLnDW6U%2Fy6jkaDXtysDm8vjxY%2FXYnLebkelXaQtSSge2IhBj9kjMLF41duDUNRiDLHEzfaigsoxRzWG6B0kZ2%2BoRA3dD2lRa44ZrM%2FBW5ANziVApGLaKCYucXOCEdhoew5Y%2Btu65VwJqxUC1j4lav6UwpIJfnRswQUIMawPSr2LGp6WwLDYJ2TwoMNbf6Tdni%2FEuNvAdEvuUZAwFERLVXg7pg9xt1djZgqV7DmuHFGQI9Sje2A9dR%2FFDd0osztIRYnln1hdW1dff%2B1gtNLN1u0ViZy9BBlu%2BzBNUK%2BrIaP9Nla2TG%2BETHwq2kXzmS4XxXmSVan9KMYUprrbgFJqCndyIw9fgdh8dMvzIiW0sngbxoGlniN6LffruTEIGE9khBw5T2FDmWlTYqrnEPa7aF%2FYYcPYiUE48Ul5jhP82tj%2FiESyJilCeLdQRpod6No3xJNNHeZBpOBsiAzm5rg2dBZYSyH9Hob0EOFqqh3vWOuHbFR5eXcORp4OzwTUA4rUzVfJ4q%2FIa1GzCrzjOMxQr5uqLAWUOwgaHOphrgF0r2epYh%2FytdjBmUAurfM6CxruT3Ee%2BDv2%2FHAwK4RUIPskqK%2Fw4%2FR1F1bWfHjbNiXcYl6RwGJcMOMdXZaEVxCutSN1SGLMx3JfzCdlU8THZFFC%2BJJuB2964wSGdmq3I2FEcpWYVfHm4jmXd%2BRn7agFn9oFaWGYhBmJs5v5a0LZUjc3Sr4Ep%2FmFYlX8OdLlFYidM%2B731v7Ly4lfu85l3SSMTAcd5Bg2Sl%2FIHBm3RuacVx%2BrHpFcWjxztavOcOBcTnUhwekkGlsfWEt2%2FkHflB7WqKomGvs9F62l7a%2BRKQQQtRBD9VIlZiLEfRBRfQEmDb32cFQcSjznUP3um%2FkcbV%2BjmNEvqhOQuonjoQh7QF%2BbK811rduN5G6ICLD%2BnmPbi0ur2hrDLKhQYiwRdQrvKjcp%2F%2BL%2BnTz%2Fa4FgvmakvluPMMxbL15Dq5MTYAhOxXM%2FmvEpsoWmtfP9RxnkAIAr%2F5pVxqPxH93msKodRSXIct2l0OU0%2FL4eY506L%2B3GyJ6UMEZfjjCDbysNcWWmFweJP0Jz%2FA0g2gk80pGkYAAAAAElFTkSuQmCC\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "Probabilistic programming with Gen, built on top of JAX.",
"version": "0.1.0",
"project_urls": {
"Changelog": "https://github.com/probcomp/genjax/releases",
"Documentation": "https://probcomp.github.io/genjax/",
"Homepage": "https://github.com/probcomp/genjax",
"Repository": "https://github.com/probcomp/genjax"
},
"split_keywords": [
"artificial-intelligence",
"probabilistic-programming",
"bayesian-inference",
"differentiable-programming"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5e010fed3241b35260dc96ec4285b925957d56e6f0e05192539eaba6a3499371",
"md5": "56fa8dd98b4f5caff188a5613289d0e5",
"sha256": "8c5e84700cff4e67d7871f52988e27702b1f95e28caa87be69d8f84901890a55"
},
"downloads": -1,
"filename": "genjax-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "56fa8dd98b4f5caff188a5613289d0e5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<3.13",
"size": 174836,
"upload_time": "2024-01-12T22:56:29",
"upload_time_iso_8601": "2024-01-12T22:56:29.542972Z",
"url": "https://files.pythonhosted.org/packages/5e/01/0fed3241b35260dc96ec4285b925957d56e6f0e05192539eaba6a3499371/genjax-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "74f2b8430f4911f28abb8cc8b562d1bcde639ec43e9d777fab9696160f2caeb7",
"md5": "f98d2da8b2b9711ee7e640822219e010",
"sha256": "ade839b4849040cb5643f3caa22092697852f719f169c4ead0d5bc0daa1e1a5a"
},
"downloads": -1,
"filename": "genjax-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "f98d2da8b2b9711ee7e640822219e010",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<3.13",
"size": 99501,
"upload_time": "2024-01-12T22:56:31",
"upload_time_iso_8601": "2024-01-12T22:56:31.552942Z",
"url": "https://files.pythonhosted.org/packages/74/f2/b8430f4911f28abb8cc8b562d1bcde639ec43e9d777fab9696160f2caeb7/genjax-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-12 22:56:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "probcomp",
"github_project": "genjax",
"github_not_found": true,
"lcname": "genjax"
}