flowMC
A JAX-based normalizing-flow-enhanced MCMC sampler for probabilistic inference
flowMC is a JAX-based package for normalizing-flow-enhanced Markov chain Monte Carlo (MCMC) sampling. By using normalizing flows as a global proposal, flowMC accelerates convergence for multi-modal and high-dimensional posteriors while running natively on GPU with minimal hyperparameter tuning.
For a quick introduction, see the Quick Start guide.
[!WARNING] flowMC has not yet reached v1.0.0 and the API may change. Use at your own risk. Consider pinning to a specific version if you need API stability.
Installation
The simplest way to install flowMC is through pip:
pip install flowMC
This will install the latest stable release and its dependencies. flowMC is built on JAX. By default, this installs the CPU version of JAX. If you have an NVIDIA GPU, install the CUDA-enabled version:
pip install flowMC[cuda]
If you want to install the latest version of flowMC, you can clone this repo and install it locally:
git clone https://github.com/GW-JAX-Team/flowMC.git
cd flowMC
pip install -e .
We recommend using uv to manage your Python environment.
After cloning the repository, run uv sync to create a virtual environment with all dependencies installed.
Origins
flowMC was originally developed as kazewong/flowMC by Kaze W. K. Wong and others. The original repository is no longer actively maintained; this fork is the active continuation of the project.
Attribution
If you use flowMC in your research, please cite the following papers:
@article{Wong:2022xvh,
author = "Wong, Kaze W. K. and Gabri\'e, Marylou and Foreman-Mackey, Daniel",
title = "{flowMC: Normalizing flow enhanced sampling package for probabilistic inference in JAX}",
eprint = "2211.06397",
archivePrefix = "arXiv",
primaryClass = "astro-ph.IM",
doi = "10.21105/joss.05021",
journal = "J. Open Source Softw.",
volume = "8",
number = "83",
pages = "5021",
year = "2023"
}
@article{Gabrie:2021tlu,
author = "Gabri\'e, Marylou and Rotskoff, Grant M. and Vanden-Eijnden, Eric",
title = "{Adaptive Monte Carlo augmented with normalizing flows}",
eprint = "2105.12603",
archivePrefix = "arXiv",
primaryClass = "physics.data-an",
doi = "10.1073/pnas.2109420119",
journal = "Proc. Nat. Acad. Sci.",
volume = "119",
number = "10",
pages = "e2109420119",
year = "2022"
}
Metadata
Release files for flowMC 0.6.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flowmc-0.6.3.tar.gz | 2.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flowmc-0.6.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.9 MB
Release files / flowmc-0.6.3.tar.gz
| Download URL | flowmc-0.6.3.tar.gz |
|---|---|
| Size | 2.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
155034736052aed98bcb5b29ff81ae672cf4739c713c11d1b20f6d5c3fece9a5
|
|
BLAKE2b-256 checksum How to use checksums |
5687a51f41d8c67100b5b9e005a129319fb654a29ff5397c067997963846e899
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / flowmc-0.6.3-py3-none-any.whl
| Download URL | flowmc-0.6.3-py3-none-any.whl |
|---|---|
| Size | 93.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
485119273a11de7cc03e4bc75a1f2e65f07d051210483b551e3b8d5c8999243f
|
|
BLAKE2b-256 checksum How to use checksums |
c45da84abe8734c5a63b1e7e405910de5ab7a2940a13d110e0a83ec62bfe2b54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|