nflows es una colección completa de flujos de normalización que usan Pytorch.
Para instalar desde Pypi:
python -m pip install nflows
Para instalar y agregar nflows a un proyecto con pixi , desde el directorio del proyecto ejecutado
pixi add nflows
y para instalar en un entorno de conda particular con conda , en el entorno activado ejecutado
conda install --channel conda-forge nflows
Para definir un flujo:
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 )Para evaluar las probabilidades de registro de las entradas:
log_prob = flow . log_prob ( inputs )Para probar del flujo:
samples = flow . sample ( num_samples )Se proporcionan ejemplos adicionales del flujo de trabajo en la carpeta de ejemplos.
Para instalar todas las dependencias para el desarrollo:
pip install -r requirements.txt
Para citar el paquete:
@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 }
} El número de versión está destinado a ser el de nflows/version.py . El año/mes corresponde a la fecha del lanzamiento. Las entradas de Bibtex para otras versiones se pueden encontrar en Zenodo.
Si está utilizando flujos basados en Spline en particular, considere citar el papel de flujos de spline neural : [bibtex].
nflows se deriva de bayesiains/nsf publicado originalmente con
C. Durkan, A. Bekasov, I. Murray, G. Papamakario, Flujos de spline neural , Neurips 2019. [ARXIV] [Bibtex]
nflows ha sido utilizado en
Conor Durkan, Iain Murray, George Papamakario, sobre el aprendizaje contrastante para la inferencia sin probabilidad , ICML 2020. [Arxiv].
Artur Bekasov, Iain Murray, ordenando dimensiones con flujos de normalización de abandono anidado . [arxiv].
Tim Dockhorn, James A. Ritchie, Yaoliang Yu, Iain Murray, Deconvolución de densidad con flujos de normalización . [arxiv].
nflows es utilizado por el paquete de estimación de densidad condicional Pyknos y, a su vez, el marco de inferencia sin probabilidad SBI.