Source code for

"""Base class for context encoder."""
import abc

[docs]class Encoder(abc.ABC): """Base class of context encoders for training meta-RL algorithms.""" @property @abc.abstractmethod def spec(self): """garage.InOutSpec: Input and output space.""" @property @abc.abstractmethod def input_dim(self): """int: Dimension of the encoder input.""" @property @abc.abstractmethod def output_dim(self): """int: Dimension of the encoder output (embedding)."""
[docs] def reset(self, do_resets=None): """Reset the encoder. This is effective only to recurrent encoder. do_resets is effective only to vectoried encoder. For a vectorized encoder, do_resets is an array of boolean indicating which internal states to be reset. The length of do_resets should be equal to the length of inputs. Args: do_resets (numpy.ndarray): Bool array indicating which states to be reset. """
[docs]class StochasticEncoder(Encoder): """An stochastic context encoders. An stochastic encoder maps an input to a distribution, but not a deterministic vector. """ @property @abc.abstractmethod def distribution(self): """object: Embedding distribution."""