base_posterior
base_posterior
¶
Base classes for the posterior action encoder.
PosteriorLatentEncoder
¶
Bases: ModuleAttrMixin, ABC
Abstract base class for posterior encoders, used for modeling the conditional posterior q_\phi(z|a,s).
Posterior encoders learn lower-dimensional latent embeddings conditioned on privileged information such as expert actions (a) and optionally observations (s), in order to learn a latent representation of the target action multi-modality and execution style. They are trained with variational inference to learn a conditional latent distribution that is close to a prior probability p(z) (which can also be learned, ref. latent/prior package) .
Design
- Supports both action-only and action+observation conditioning
- Returns dictionary with LatentKey.POSTERIOR_LATENT + algorithm-specific auxiliary outputs
Initialize posterior encoder.
Source code in src/versatil/models/decoding/latent/posterior/base_posterior.py
encode
abstractmethod
¶
Encode actions (and optionally observations) into latent space.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
actions
|
dict[str, Tensor]
|
Dictionary of action tensors (e.g., position, orientation, gripper) Shape: (B, horizon, action_dim) for each action component |
required |
observations
|
dict[str, Tensor] | None
|
Optional observation features for conditional encoding Shape depends on observation type (e.g., (B, obs_dim) for flat features) |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, Tensor]
|
Dictionary containing at minimum: - LatentKey.POSTERIOR_LATENT: Latent embedding (B, latent_dim) Plus algorithm-specific outputs (e.g., mu, logvar for VAE) |
Source code in src/versatil/models/decoding/latent/posterior/base_posterior.py
get_auxiliary_output_keys
¶
Return the set of keys this encoder adds to the predictions dict.
Base implementation returns keys common to Gaussian posteriors. Subclasses override to add or remove keys.
Source code in src/versatil/models/decoding/latent/posterior/base_posterior.py
forward
¶
Forward pass: encode actions into a latent representation.