class scvi.nn.Encoder(n_input, n_output, n_cat_list=None, n_layers=1, n_hidden=128, dropout_rate=0.1, distribution='normal', var_eps=0.0001, var_activation=None, **kwargs)[source]

Bases: torch.nn.modules.module.Module

Encodes data of n_input dimensions into a latent space of n_output dimensions.

Uses a fully-connected neural network of n_hidden layers.

n_input : intint

The dimensionality of the input (data space)

n_output : intint

The dimensionality of the output (latent space)

n_cat_list : Iterable[int] | NoneOptional[Iterable[int]] (default: None)

A list containing the number of categories for each category of interest. Each category will be included using a one-hot encoding

n_layers : intint (default: 1)

The number of fully-connected hidden layers

n_hidden : intint (default: 128)

The number of nodes per hidden layer

dropout_rate : floatfloat (default: 0.1)

Dropout rate to apply to each of the hidden layers

distribution : strstr (default: 'normal')

Distribution of z

var_eps : floatfloat (default: 0.0001)

Minimum value for the variance; used for numerical stability

var_activation : Callable | NoneOptional[Callable] (default: None)

Callable used to ensure positivity of the variance. When None, defaults to torch.exp.


Keyword args for FCLayers



forward(x, *cat_list)

The forward computation for a single sample.