nflows
nflows is a comprehensive collection of normalizing flows using PyTorch.
Installation
To install from PyPI:
pip install nflows
Usage
To define a flow:
from nflows import transforms, distributions, flows
# Define an invertible transformation.
transform = transforms.CompositeTransform([
transforms.MaskedAffineAutoregressiveTransform(features=2, hidden_features=4),
transforms.RandomPermutation(features=2)
])
# Define a base distribution.
base_distribution = distributions.StandardNormal(shape=[2])
# Combine into a flow.
flow = flows.Flow(transform=transform, distribution=base_distribution)
To evaluate log probabilities of inputs:
log_prob = flow.log_prob(inputs)
To sample from the flow:
samples = flow.sample(num_samples)
Additional examples of the workflow are provided in examples folder.
Development
To install all the dependencies for development:
pip install -r requirements.txt
Citing nflows
To cite the package:
@software{nflows,
author = {Conor Durkan and
Artur Bekasov and
Iain Murray and
George Papamakarios},
title = {{nflows}: normalizing flows in {PyTorch}},
month = nov,
year = 2020,
publisher = {Zenodo},
version = {v0.14},
doi = {10.5281/zenodo.4296287},
url = {https://doi.org/10.5281/zenodo.4296287}
}
The version number is intended to be the one from nflows/version.py. The year/month correspond to the date of the release. BibTeX entries for other versions could be found on Zenodo.
If you're using spline-based flows in particular, consider citing the Neural Spline Flows paper: [bibtex].
References
nflows is derived from bayesiains/nsf originally published with
C. Durkan, A. Bekasov, I. Murray, G. Papamakarios, Neural Spline Flows, NeurIPS 2019. [arXiv] [bibtex]
nflows has been used in
Conor Durkan, Iain Murray, George Papamakarios, On Contrastive Learning for Likelihood-free Inference, ICML 2020. [arXiv].
Artur Bekasov, Iain Murray, Ordering Dimensions with Nested Dropout Normalizing Flows. [arXiv].
Tim Dockhorn, James A. Ritchie, Yaoliang Yu, Iain Murray, Density Deconvolution with Normalizing Flows. [arXiv].
nflows is used by the conditional density estimation package pyknos, and in turn the likelihood-free inference framework sbi.
Metadata
Release files for matts-nflows 0.14
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| matts-nflows-0.14.tar.gz | 51.1 kB | Details |
Release files / matts-nflows-0.14.tar.gz
| Download URL | matts-nflows-0.14.tar.gz |
|---|---|
| Size | 51.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
16b600a33f1ffbccc8b2f71c9fdffe37a4632e8939747f9dcd58dad8e4aa5a29
|
|
BLAKE2b-256 checksum How to use checksums |
39ed1799982f9950cd911cff995ae4ad8e6a0d59cffc6b18311d5063b1685987
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|