scvi.nn.FCLayers#

class scvi.nn.FCLayers(n_in, n_out, n_cat_list=None, n_layers=1, n_hidden=128, dropout_rate=0.1, use_batch_norm=True, use_layer_norm=False, use_activation=True, bias=True, inject_covariates=True, activation_fn=<class 'torch.nn.modules.activation.ReLU'>)[source]#

Bases: Module

A helper class to build fully-connected layers for a neural network.

Parameters:
  • n_in (int) – The dimensionality of the input

  • n_out (int) – The dimensionality of the output

  • n_cat_list (Iterable[int] (default: None)) – A list containing, for each category of interest, the number of categories. Each category will be included using a one-hot encoding.

  • n_layers (int (default: 1)) – The number of fully-connected hidden layers

  • n_hidden (int (default: 128)) – The number of nodes per hidden layer

  • dropout_rate (float (default: 0.1)) – Dropout rate to apply to each of the hidden layers

  • use_batch_norm (bool (default: True)) – Whether to have BatchNorm layers or not

  • use_layer_norm (bool (default: False)) – Whether to have LayerNorm layers or not

  • use_activation (bool (default: True)) – Whether to have layer activation or not

  • bias (bool (default: True)) – Whether to learn bias in linear layers or not

  • inject_covariates (bool (default: True)) – Whether to inject covariates in each layer, or just the first (default).

  • activation_fn (Module (default: <class 'torch.nn.modules.activation.ReLU'>)) – Which activation function to use

Attributes table#

training

Methods table#

forward(x, *cat_list)

Forward computation on x.

inject_into_layer(layer_num)

Helper to determine if covariates should be injected.

set_online_update_hooks([hook_first_layer])

Set online update hooks.

Attributes#

FCLayers.training: bool#

Methods#

FCLayers.forward(x, *cat_list)[source]#

Forward computation on x.

Parameters:
  • x (Tensor) – tensor of values with shape (n_in,)

  • cat_list (int) – list of category membership(s) for this sample

Returns:

torch.Tensor tensor of shape (n_out,)

FCLayers.inject_into_layer(layer_num)[source]#

Helper to determine if covariates should be injected.

Return type:

bool

FCLayers.set_online_update_hooks(hook_first_layer=True)[source]#

Set online update hooks.