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] | NoneOptional[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#

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])

Attributes#

T_destination#

FCLayers.T_destination#

alias of TypeVar(‘T_destination’, bound=Dict[str, Any])

alias of TypeVar(‘T_destination’, bound=Dict[str, Any]) .. autoattribute:: FCLayers.T_destination dump_patches ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

FCLayers.dump_patches: bool = False#

training#

FCLayers.training: bool#

Methods#

forward#

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

Forward computation on x.

Parameters:
x : torch.Tensor

tensor of values with shape (n_in,)

cat_list : int

list of category membership(s) for this sample

x

Returns:

py:class:torch.Tensor tensor of shape (n_out,)

inject_into_layer#

FCLayers.inject_into_layer(layer_num)[source]#

Helper to determine if covariates should be injected.

Return type:

bool

set_online_update_hooks#

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