Skip to main content

Bayesian Inference with JAX

Project description

Bayinx: Bayesian Inference with JAX

Bayinx is an embedded probabilistic programming language in Python, powered by JAX. It is heavily inspired by and aims to have feature parity with Stan, but extends the types of objects you can work with and focuses on normalizing flows variational inference for sampling.

Installation

Bayinx requires Python 3.12+, JAX, and a few extra libraries in the JAX ecosystem. The easiest way to get started is by installing from PyPi using your favourite python package manager. For example with uv:

# Ensure you are in your project environment
uv add bayinx

This installs the bare-bones version of Bayinx, however if you need additional functionality like GPU support, there are a couple of dependency groups:

# Ensure you are in your project environment
uv add 'bayinx[cuda]' # Installs Bayinx with CUDA support

Documentation

Documentation is available at: https://toddpocuca.github.io/bayinx.

Roadmap

  • Allow shape definitions to include expressions (e.g., shape = 'n_obs + 1' will evaluate to the correct specification).
  • Find a nice way to track the ELBO trajectory to implement early stopping (tolerance currently does nothing).
  • Nodes carry bounds for their support (i.e., node.obj ∈ [node._lb, node._ub]) which are used to check if inputs to distributions are valid (e.g., a node inputted as the scale of a normal dist must have node._lb >= 0)
  • Refactor NF implementation to support forward and reverse flows (reverse defaults to a differentiable root-solver) to support STL estimator.

Project details


Release history Release notifications | RSS feed

This version

0.6.8

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bayinx-0.6.8.tar.gz (701.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bayinx-0.6.8-py3-none-any.whl (75.7 kB view details)

Uploaded Python 3

File details

Details for the file bayinx-0.6.8.tar.gz.

File metadata

  • Download URL: bayinx-0.6.8.tar.gz
  • Upload date:
  • Size: 701.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for bayinx-0.6.8.tar.gz
Algorithm Hash digest
SHA256 328a13612d9872d244d8c28880067fec3d3796a5927245727566ac5a36b69f35
MD5 f5da88d5bd48357027dc1380e3f02ac6
BLAKE2b-256 534f56a558a63a3b389a5888a3b6dd188b60958ddd9415fc004fbcde1a0026bc

See more details on using hashes here.

File details

Details for the file bayinx-0.6.8-py3-none-any.whl.

File metadata

  • Download URL: bayinx-0.6.8-py3-none-any.whl
  • Upload date:
  • Size: 75.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for bayinx-0.6.8-py3-none-any.whl
Algorithm Hash digest
SHA256 014d76a4b4fe97429526a601c34464b72a26048a64fe36962615ba2c93ea5fdf
MD5 2e2c4cea69b7b9f5e2ab108ca6a591d8
BLAKE2b-256 d398ba7774b97993caaaac4e1e8a614547929a5ff7aa01ced6bafd350064bede

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page