Skip to main content

Sliced Iterative Normalizing Flow

Project description

sinflow

License: GPL v3 Documentation Status

sinflow is a Python implementation of the sliced iterative normalizing flow (SINF) algorithm for density estimation and sampling. The package has minimal dependencies, requiring only numpy and scipy. The code is designed to be easy to use and flexible, with a focus on performance and scalability. The package is designed to be used in a similar way to scikit-learn, with a simple and consistent API.

Documentation

Read the docs at sinflow.readthedocs.io for more information, examples and tutorials.

Installation

To install sinflow using pip run:

pip install sinflow

or, to install from source:

git clone https://github.com/minaskar/sinflow.git
cd pocomc
python setup.py install

Basic example

For instance, if you wanted to draw samples from a 10-dimensional Rosenbrock distribution with a uniform prior, you would do something like:

import sinflow as sf
import numpy as np
from sklearn.datasets import make_moons

# Generate some data
x, _ = make_moons(n_samples=5000, noise=0.15)

# Fit a normalizing flow model
flow = sf.Flow()
flow.fit(x)

# Sample from the model
samples = flow.sample(1000)

# Evaluate the log-likelihood of the samples
log_prob = flow.log_prob(samples)

# Evaluate the forward transformation
z, log_det_forward = flow.forward(x)

# Invert the transformation
x_reconstructed, log_det_inverse = flow.inverse(z)

Attribution & Citation

Please cite the following paper if you found this code useful in your research:

@article{karamanis2024sinflow,
    title={},
    author={},
    journal={},
    year={2024}
}

Licence

Copyright 2024-Now Minas Karamanis and contributors.

sinflow is free software made available under the GPL-3.0 License. For details see the LICENSE file.

Project details


Download files

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

Source Distribution

sinflow-0.1.0.tar.gz (28.1 kB view details)

Uploaded Source

Built Distribution

sinflow-0.1.0-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

File details

Details for the file sinflow-0.1.0.tar.gz.

File metadata

  • Download URL: sinflow-0.1.0.tar.gz
  • Upload date:
  • Size: 28.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for sinflow-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d5f910438a6a400c1b0a12fd89bd9295ee28b284b5d42d6ec19940e292160e84
MD5 f2dce551067c7ee49edec7fa5f2664e9
BLAKE2b-256 ffe7f7fe045329cd93a23e7470e9a92b27665b98fa5c830bfd0f7cc2cdb80d9e

See more details on using hashes here.

File details

Details for the file sinflow-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sinflow-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 26.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for sinflow-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9ec108e4cb5991209d33a4a00731f2d0f3ba96ec846a0698f2202775ad7b0fb5
MD5 50c55d35579baf17008eeece069939b3
BLAKE2b-256 d7f5a4ec2b6a85dacffb87e26eafb20bc67b508908c5f938bd3a75eefc51b2ff

See more details on using hashes here.

Supported by

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