nflows é uma coleção abrangente de fluxos normalizados usando Pytorch.
Para instalar a partir de Pypi:
python -m pip install nflows
Para instalar e adicionar nflows a um projeto com pixi , a partir da execução do diretório do projeto
pixi add nflows
e instalar em um determinado ambiente de conda com conda , no ambiente ativado executado
conda install --channel conda-forge nflows
Para definir um fluxo:
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 avaliar as probabilidades de log de insumos:
log_prob = flow . log_prob ( inputs )Amostra do fluxo:
samples = flow . sample ( num_samples )Exemplos adicionais do fluxo de trabalho são fornecidos na pasta Exemplos.
Para instalar todas as dependências para o desenvolvimento:
pip install -r requirements.txt
Para citar o pacote:
@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 }
} O número da versão deve ser o do nflows/version.py . O ano/mês corresponde à data do comunicado. Entradas Bibtex para outras versões podem ser encontradas no Zenodo.
Se você estiver usando os fluxos baseados em spline, em particular, considere citar o papel dos fluxos de spline neural : [Bibtex].
nflows é derivado de Bayesiains/NSF originalmente publicado com
C. Durkan, A. Bekasov, I. Murray, G. Papamakarios, fluxos de spline neural , Neurips 2019. [Arxiv] [Bibtex]
nflows tem sido usado em
Conor Durkan, Iain Murray, George Papamakarios, Sobre aprendizado contrastante para inferência livre de probabilidade , ICML 2020. [Arxiv].
Artur Bekasov, Iain Murray, ordenando dimensões com desistência aninhada normalizando fluxos . [Arxiv].
Tim Dockhorn, James A. Ritchie, Yaoliang Yu, Iain Murray, Deconvolução de densidade com fluxos normalizando . [Arxiv].
nflows é usado pelo pacote de estimativa de densidade condicional pyknos e, por sua vez, a estrutura de inferência livre de verossimilhança SBI.