nflows est une collection complète de flux de normalisation à l'aide de Pytorch.
Pour installer à partir de PYPI:
python -m pip install nflows
Pour installer et ajouter nflows à un projet avec pixi , à partir de l'exécution du répertoire du projet
pixi add nflows
et pour installer dans un environnement conda particulier avec conda , dans l'environnement activé
conda install --channel conda-forge nflows
Pour définir un flux:
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 )Pour évaluer les probabilités de journal des entrées:
log_prob = flow . log_prob ( inputs )À échantillonner à partir du flux:
samples = flow . sample ( num_samples )Des exemples supplémentaires du flux de travail sont fournis dans le dossier Exemples.
Pour installer toutes les dépendances pour le développement:
pip install -r requirements.txt
Pour citer le 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 }
} Le numéro de version est destiné à être celui de nflows/version.py . L'année / mois correspond à la date du communiqué. Des entrées de bibtex pour d'autres versions ont pu être trouvées sur Zenodo.
Si vous utilisez des flux basés sur des spline en particulier, envisagez de citer le papier de flux de spline neurale : [Bibtex].
nflows est dérivé de Bayesias / NSF publié à l'origine avec
C. Durkan, A. Bekasov, I. Murray, G. Papamakarios, Neural Spline Flows , Neirips 2019. [Arxiv] [Bibtex]
nflows a été utilisé dans
Conor Durkan, Iain Murray, George Papamakarios, sur l'apprentissage contrastif pour une inférence sans vraisemblance , ICML 2020. [Arxiv].
Artur Bekasov, Iain Murray, Dimensions de commande avec des écoulements de normalisation de l'abandon imbriqué . [arXiv].
Tim Dockhorn, James A. Ritchie, Yaoliang Yu, Iain Murray, déconvolution de la densité avec des flux de normalisation . [arXiv].
nflows est utilisé par le package d'estimation de la densité conditionnelle Pyknos, et à son tour le cadre d'inférence sans vraisemblance SBI.