scvi.module.base.LossRecorder

class scvi.module.base.LossRecorder(loss, reconstruction_loss=tensor([0.]), kl_local=tensor([0.]), kl_global=tensor([0.]), **kwargs)[source]

Bases: object

Loss signature for models.

This class provides an organized way to record the model loss, as well as the components of the ELBO. This may also be used in MLE, MAP, EM methods. The loss is used for backpropagation during inference. The other parameters are used for logging/early stopping during inference.

Parameters
loss : {str: Tensor} | TensorUnion[Dict[str, Tensor], Tensor]

Tensor with loss for minibatch. Should be one dimensional with one value. Note that loss should be a Tensor and not the result of .item().

reconstruction_loss : {str: Tensor} | TensorUnion[Dict[str, Tensor], Tensor] (default: tensor([0.]))

Reconstruction loss for each observation in the minibatch.

kl_local : {str: Tensor} | TensorUnion[Dict[str, Tensor], Tensor] (default: tensor([0.]))

KL divergence associated with each observation in the minibatch.

kl_global : {str: Tensor} | TensorUnion[Dict[str, Tensor], Tensor] (default: tensor([0.]))

Global kl divergence term. Should be one dimensional with one value.

**kwargs

Additional metrics can be passed as keyword arguments and will be available as attributes of the object.

Attributes

kl_global

rtype

TensorTensor

kl_local

rtype

TensorTensor

loss

rtype

TensorTensor

reconstruction_loss

rtype

TensorTensor

Methods