NVPFlow

class viabel.NVPFlow(layers_t, layers_s, mask, prior, prior_param, dim, activation=<function primitive.<locals>.f_wrapped>, seed=1, mc_samples=10000)[source]
Attributes:
dim

Dimension of the space the distribution is defined on

supports_entropy

Whether the approximation family supports closed-form entropy computation.

supports_kl

Whether the approximation family supports closed-form KL divergence computation.

var_param_dim

Dimension of the variational parameter

Methods

entropy(var_param)

Compute entropy of variational distribution.

f(var_param, x)

Forward NVP flow.

g(var_param, z)

Inverse NVP flow.

init_param()

A variational parameter to use for initialization.

kl(var_param0, var_param1)

Compute the Kullback-Leibler (KL) divergence.

log_density(var_param, x)

The log density of the variational distribution.

mean_and_cov(var_param)

The mean and covariance of the variational distribution.

pth_moment(var_param, p)

The absolute pth moment of the variational distribution.

sample(var_param, n_samples[, seed])

Generate samples from the variational distribution

supports_pth_moment(p)

Whether analytically computing the pth moment is supported

__init__(layers_t, layers_s, mask, prior, prior_param, dim, activation=<function primitive.<locals>.f_wrapped>, seed=1, mc_samples=10000)[source]
Parameters:
layers_tlist of int

The hidden layers dimensions for the translation operator.

layers_slist of int

The hidden layers dimensions for the scaling operator.

maskmask int

Mask to apply to the entry of each operator.

priorApproximationFamily

Prior for the latent space Z.

prior_paramnumpy array

Parameter vector for the prior, must follow the same format as any variational family.

dimint

Input dimension.

seedint

Random seed for reproducibility.

mc_samplesint

Number of samples to draw internally for computing mean and cov.

f(var_param, x)[source]

Forward NVP flow.

Parameters:
var_paramnumpy array

Flat array of variational parameters.

xnumpy array

Original space data.

g(var_param, z)[source]

Inverse NVP flow.

Parameters:
var_paramnumpy array

Flat array of variational parameters.

znumpy array

Latent space sample.

log_density(var_param, x)[source]

The log density of the variational distribution.

Parameters:
var_paramnumpy.ndarray, shape (var_param_dim,)

The variational parameter.

xnumpy.ndarray, shape (dim,)

Value at which to evaluate the density.

mean_and_cov(var_param)[source]

The mean and covariance of the variational distribution.

Parameters:
var_paramnumpy.ndarray, shape (var_param_dim,)

The variational parameter.

sample(var_param, n_samples, seed=None)[source]

Generate samples from the variational distribution

Parameters:
var_paramnumpy.ndarray, shape (var_param_dim,)

The variational parameter.

n_samplesint

The number of samples to generate.

Returns:
samplesnumpy.ndarray, shape (n_samples, var_param_dim)
supports_pth_moment(p)[source]

Whether analytically computing the pth moment is supported