garage.tf.regressors package

Regressors for TensorFlow-based algorithms.

class BernoulliMLPRegressor(input_shape, output_dim, name='BernoulliMLPRegressor', hidden_sizes=(32, 32), hidden_nonlinearity=<function relu>, hidden_w_init=<tensorflow.python.ops.init_ops.GlorotUniform object>, hidden_b_init=<tensorflow.python.ops.init_ops.Zeros object>, output_nonlinearity=<function sigmoid>, output_w_init=<tensorflow.python.ops.init_ops.GlorotUniform object>, output_b_init=<tensorflow.python.ops.init_ops.Zeros object>, optimizer=None, optimizer_args=None, tr_optimizer=None, tr_optimizer_args=None, use_trust_region=True, max_kl_step=0.01, normalize_inputs=True, layer_normalization=False)[source]

Bases: garage.tf.regressors.base.StochasticRegressor

Fits data to a Bernoulli distribution, parameterized by an MLP.

Parameters:
  • input_shape (tuple[int]) – Input shape of the training data. Since an MLP model is used, implementation assumes flattened inputs. The input shape of each data point should thus be of shape (x, ).
  • output_dim (int) – Output dimension of the model.
  • name (str) – Model name, also the variable scope.
  • hidden_sizes (list[int]) – Output dimension of dense layer(s) for the MLP for the network. For example, (32, 32) means the MLP consists of two hidden layers, each with 32 hidden units.
  • hidden_nonlinearity (Callable) – Activation function for intermediate dense layer(s). It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • hidden_w_init (Callable) – Initializer function for the weight of intermediate dense layer(s). The function should return a tf.Tensor. Default is Glorot uniform initializer.
  • hidden_b_init (Callable) – Initializer function for the bias of intermediate dense layer(s). The function should return a tf.Tensor. Default is zero initializer.
  • output_nonlinearity (Callable) – Activation function for output dense layer. It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • output_w_init (Callable) – Initializer function for the weight of output dense layer(s). The function should return a tf.Tensor. Default is Glorot uniform initializer.
  • output_b_init (Callable) – Initializer function for the bias of output dense layer(s). The function should return a tf.Tensor. Default is zero initializer.
  • optimizer (garage.tf.Optimizer) – Optimizer for minimizing the negative log-likelihood. Defaults to LbsgsOptimizer
  • optimizer_args (dict) – Arguments for the optimizer. Default is None, which means no arguments.
  • tr_optimizer (garage.tf.Optimizer) – Optimizer for trust region approximation. Defaults to ConjugateGradientOptimizer.
  • tr_optimizer_args (dict) – Arguments for the trust region optimizer. Default is None, which means no arguments.
  • use_trust_region (bool) – Whether to use trust region constraint.
  • max_kl_step (float) – KL divergence constraint for each iteration.
  • normalize_inputs (bool) – Bool for normalizing inputs or not.
  • layer_normalization (bool) – Bool for using layer normalization or not.
dist_info_sym(x_var, name=None)[source]

Build a symbolic graph of the distribution parameters.

Parameters:
  • x_var (tf.Tensor) – Input tf.Tensor for the input data.
  • name (str) – Name of the new graph.
Returns:

Output of the symbolic graph of the distribution

parameters.

Return type:

dict[tf.Tensor]

fit(xs, ys)[source]

Fit with input data xs and label ys.

Parameters:
  • xs (numpy.ndarray) – Input data.
  • ys (numpy.ndarray) – Label of input data.
get_params_internal(**args)[source]

Get the params, which are the trainable variables.

Parameters:args – Ignored by the function. Will be removed in future release.
Returns:A list of trainable variables in the current variable scope.
Return type:List[tf.Variable]
log_likelihood_sym(x_var, y_var, name=None)[source]

Build a symbolic graph of the log-likelihood.

Parameters:
  • x_var (tf.Tensor) – Input tf.Tensor for the input data.
  • y_var (tf.Tensor) – Input tf.Tensor for the one hot label of data.
  • name (str) – Name of the new graph.
Returns:

Output of the symbolic log-likelihood graph.

Return type:

tf.Tensor

predict(xs)[source]

Predict ys based on input xs.

Parameters:xs (numpy.ndarray) – Input data of shape (samples, input_dim)
Returns:
The deterministic predicted ys (one hot vectors)
of shape (samples, output_dim)
Return type:numpy.ndarray
predict_log_likelihood(xs, ys)[source]

Log likelihood of ys given input xs.

Parameters:
  • xs (numpy.ndarray) – Input data of shape (samples, input_dim)
  • ys (numpy.ndarray) – Output data of shape (samples, output_dim)
Returns:

The log likelihood of shape (samples, )

Return type:

numpy.ndarray

sample_predict(xs)[source]

Do a Bernoulli sampling given input xs.

Parameters:xs (numpy.ndarray) – Input data of shape (samples, input_dim)
Returns:
The stochastic sampled ys
of shape (samples, output_dim)
Return type:numpy.ndarray
class CategoricalMLPRegressor(input_shape, output_dim, name='CategoricalMLPRegressor', hidden_sizes=(32, 32), hidden_nonlinearity=<function tanh>, hidden_w_init=<tensorflow.python.ops.init_ops.GlorotUniform object>, hidden_b_init=<tensorflow.python.ops.init_ops.Zeros object>, output_nonlinearity=<function softmax>, output_w_init=<tensorflow.python.ops.init_ops.GlorotUniform object>, output_b_init=<tensorflow.python.ops.init_ops.Zeros object>, optimizer=None, optimizer_args=None, tr_optimizer=None, tr_optimizer_args=None, use_trust_region=True, max_kl_step=0.01, normalize_inputs=True, layer_normalization=False)[source]

Bases: garage.tf.regressors.base.StochasticRegressor

Fits data to a Categorical with parameters are the output of an MLP.

A class for performing regression (or classification, really) by fitting a Categorical distribution to the outputs. Assumes that the output will always be a one hot vector

Parameters:
  • input_shape (tuple[int]) – Input shape of the training data. Since an MLP model is used, implementation assumes flattened inputs. The input shape of each data point should thus be of shape (x, ).
  • output_dim (int) – Output dimension of the model.
  • name (str) – Model name, also the variable scope.
  • hidden_sizes (list[int]) – Output dimension of dense layer(s) for the MLP for the network. For example, (32, 32) means the MLP consists of two hidden layers, each with 32 hidden units.
  • hidden_nonlinearity (Callable) – Activation function for intermediate dense layer(s). It should return a tf.Tensor. Set it to None to maintain a tanh activation.
  • hidden_w_init (Callable) – Initializer function for the weight of intermediate dense layer(s). The function should return a tf.Tensor. Default is Glorot uniform initializer.
  • hidden_b_init (Callable) – Initializer function for the bias of intermediate dense layer(s). The function should return a tf.Tensor. Default is zero initializer.
  • output_nonlinearity (Callable) – Activation function for output dense layer. It should return a tf.Tensor. Set it to None to maintain a softmax activation.
  • output_w_init (Callable) – Initializer function for the weight of output dense layer(s). The function should return a tf.Tensor. Default is Glorot uniform initializer.
  • output_b_init (Callable) – Initializer function for the bias of output dense layer(s). The function should return a tf.Tensor. Default is zero initializer.
  • optimizer (garage.tf.Optimizer) – Optimizer for minimizing the negative log-likelihood. Defaults to LbsgsOptimizer
  • optimizer_args (dict) – Arguments for the optimizer. Default is None, which means no arguments.
  • tr_optimizer (garage.tf.Optimizer) – Optimizer for trust region approximation. Defaults to ConjugateGradientOptimizer.
  • tr_optimizer_args (dict) – Arguments for the trust region optimizer. Default is None, which means no arguments.
  • use_trust_region (bool) – Whether to use trust region constraint.
  • max_kl_step (float) – KL divergence constraint for each iteration.
  • normalize_inputs (bool) – Bool for normalizing inputs or not.
  • layer_normalization (bool) – Bool for using layer normalization or not.
dist_info_sym(x_var, name=None)[source]

Build a symbolic graph of the distribution parameters.

Parameters:
  • x_var (tf.Tensor) – Input tf.Tensor for the input data.
  • name (str) – Name of the new graph.
Returns:

Output of the symbolic graph of the distribution

parameters.

Return type:

dict[tf.Tensor]

fit(xs, ys)[source]

Fit with input data xs and label ys.

Parameters:
  • xs (numpy.ndarray) – Input data.
  • ys (numpy.ndarray) – Label of input data.
get_params_internal(**args)[source]

Get the params, which are the trainable variables.

Parameters:args – Ignored by the function. Will be removed in future release.
Returns:A list of trainable variables in the current variable scope.
Return type:List[tf.Variable]
log_likelihood_sym(x_var, y_var, name=None)[source]

Build a symbolic graph of the log-likelihood.

Parameters:
  • x_var (tf.Tensor) – Input tf.Tensor for the input data.
  • y_var (tf.Tensor) – Input tf.Tensor for the one hot label of data.
  • name (str) – Name of the new graph.
Returns:

Output of the symbolic log-likelihood graph.

Return type:

tf.Tensor

predict(xs)[source]

Predict ys based on input xs.

Parameters:xs (numpy.ndarray) – Input data.
Returns:The predicted ys (one hot vectors).
Return type:numpy.ndarray
predict_log_likelihood(xs, ys)[source]

Predict log-likelihood of output data conditioned on the input data.

Parameters:
  • xs (numpy.ndarray) – Input data.
  • ys (numpy.ndarray) – Output labels in one hot representation.
Returns:

The predicted log likelihoods.

Return type:

numpy.ndarray

class ContinuousMLPRegressor(input_shape, output_dim, name='ContinuousMLPRegressor', hidden_sizes=(32, 32), hidden_nonlinearity=<function tanh>, hidden_w_init=<tensorflow.python.ops.init_ops.GlorotUniform object>, hidden_b_init=<tensorflow.python.ops.init_ops.Zeros object>, output_nonlinearity=None, output_w_init=<tensorflow.python.ops.init_ops.GlorotUniform object>, output_b_init=<tensorflow.python.ops.init_ops.Zeros object>, optimizer=None, optimizer_args=None, normalize_inputs=True)[source]

Bases: garage.tf.regressors.base.Regressor

Fits continuously-valued data to an MLP model.

Parameters:
  • input_shape (tuple[int]) – Input shape of the training data.
  • output_dim (int) – Output dimension of the model.
  • name (str) – Model name, also the variable scope.
  • hidden_sizes (list[int]) – Output dimension of dense layer(s) for the MLP for mean. For example, (32, 32) means the MLP consists of two hidden layers, each with 32 hidden units.
  • hidden_nonlinearity (Callable) – Activation function for intermediate dense layer(s). It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • hidden_w_init (Callable) – Initializer function for the weight of intermediate dense layer(s). The function should return a tf.Tensor.
  • hidden_b_init (Callable) – Initializer function for the bias of intermediate dense layer(s). The function should return a tf.Tensor.
  • output_nonlinearity (Callable) – Activation function for output dense layer. It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • output_w_init (Callable) – Initializer function for the weight of output dense layer(s). The function should return a tf.Tensor.
  • output_b_init (Callable) – Initializer function for the bias of output dense layer(s). The function should return a tf.Tensor.
  • optimizer (garage.tf.Optimizer) – Optimizer for minimizing the negative log-likelihood.
  • optimizer_args (dict) – Arguments for the optimizer. Default is None, which means no arguments.
  • normalize_inputs (bool) – Bool for normalizing inputs or not.
fit(xs, ys)[source]

Fit with input data xs and label ys.

Parameters:
  • xs (numpy.ndarray) – Input data.
  • ys (numpy.ndarray) – Output labels.
get_params_internal(**args)[source]

Get the params, which are the trainable variables.

predict(xs)[source]

Predict y based on input xs.

Parameters:xs (numpy.ndarray) – Input data.
Returns:The predicted ys.
Return type:numpy.ndarray
predict_sym(xs, name=None)[source]

Build a symbolic graph of the model prediction.

Parameters:
  • xs (tf.Tensor) – Input tf.Tensor for the input data.
  • name (str) – Name of the new graph.
Returns:

Output of the symbolic prediction graph.

Return type:

tf.Tensor

class GaussianCNNRegressor(input_shape, output_dim, filter_dims, num_filters, strides, padding, hidden_sizes, hidden_nonlinearity=<function tanh>, hidden_w_init=<tensorflow.python.ops.init_ops.GlorotUniform object>, hidden_b_init=<tensorflow.python.ops.init_ops.Zeros object>, output_nonlinearity=None, output_w_init=<tensorflow.python.ops.init_ops.GlorotUniform object>, output_b_init=<tensorflow.python.ops.init_ops.Zeros object>, name='GaussianCNNRegressor', learn_std=True, init_std=1.0, adaptive_std=False, std_share_network=False, std_filter_dims=(), std_num_filters=(), std_strides=(), std_padding='SAME', std_hidden_sizes=(), std_hidden_nonlinearity=None, std_output_nonlinearity=None, layer_normalization=False, normalize_inputs=True, normalize_outputs=True, subsample_factor=1.0, optimizer=None, optimizer_args=None, use_trust_region=True, max_kl_step=0.01)[source]

Bases: garage.tf.regressors.base.StochasticRegressor

Fits a Gaussian distribution to the outputs of a CNN.

Parameters:
  • input_shape (tuple[int]) – Input shape of the model (without the batch dimension).
  • output_dim (int) – Output dimension of the model.
  • filter_dims (tuple[int]) – Dimension of the filters. For example, (3, 5) means there are two convolutional layers. The filter for first layer is of dimension (3 x 3) and the second one is of dimension (5 x 5).
  • num_filters (tuple[int]) – Number of filters. For example, (3, 32) means there are two convolutional layers. The filter for the first layer has 3 channels and the second one with 32 channels.
  • strides (tuple[int]) – The stride of the sliding window. For example, (1, 2) means there are two convolutional layers. The stride of the filter for first layer is 1 and that of the second layer is 2.
  • padding (str) – The type of padding algorithm to use, either ‘SAME’ or ‘VALID’.
  • name (str) – Model name, also the variable scope.
  • hidden_sizes (list[int]) – Output dimension of dense layer(s) for the Convolutional model for mean. For example, (32, 32) means the network consists of two dense layers, each with 32 hidden units.
  • hidden_nonlinearity (Callable) – Activation function for intermediate dense layer(s). It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • hidden_w_init (Callable) – Initializer function for the weight of intermediate dense layer(s). The function should return a tf.Tensor.
  • hidden_b_init (Callable) – Initializer function for the bias of intermediate dense layer(s). The function should return a tf.Tensor.
  • output_nonlinearity (Callable) – Activation function for output dense layer. It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • output_w_init (Callable) – Initializer function for the weight of output dense layer(s). The function should return a tf.Tensor.
  • output_b_init (Callable) – Initializer function for the bias of output dense layer(s). The function should return a tf.Tensor.
  • name – Name of this model (also used as its scope).
  • learn_std (bool) – Whether to train the standard deviation parameter of the Gaussian distribution.
  • init_std (float) – Initial standard deviation for the Gaussian distribution.
  • adaptive_std (bool) – Whether to use a neural network to learn the standard deviation of the Gaussian distribution. Unless True, the standard deviation is learned as a parameter which is not conditioned on the inputs.
  • std_share_network (bool) – Boolean for whether the mean and standard deviation models share a CNN network. If True, each is a head from a single body network. Otherwise, the parameters are estimated using the outputs of two indepedent networks.
  • std_filter_dims (tuple[int]) – Dimension of the filters. For example, (3, 5) means there are two convolutional layers. The filter for first layer is of dimension (3 x 3) and the second one is of dimension (5 x 5).
  • std_num_filters (tuple[int]) – Number of filters. For example, (3, 32) means there are two convolutional layers. The filter for the first layer has 3 channels and the second one with 32 channels.
  • std_strides (tuple[int]) – The stride of the sliding window. For example, (1, 2) means there are two convolutional layers. The stride of the filter for first layer is 1 and that of the second layer is 2.
  • std_padding (str) – The type of padding algorithm to use in std network, either ‘SAME’ or ‘VALID’.
  • std_hidden_sizes (list[int]) – Output dimension of dense layer(s) for the Conv for std. For example, (32, 32) means the Conv consists of two hidden layers, each with 32 hidden units.
  • std_hidden_nonlinearity (callable) – Nonlinearity for each hidden layer in the std network.
  • std_output_nonlinearity (Callable) – Activation function for output dense layer in the std network. It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • layer_normalization (bool) – Bool for using layer normalization or not.
  • normalize_inputs (bool) – Bool for normalizing inputs or not.
  • normalize_outputs (bool) – Bool for normalizing outputs or not.
  • subsample_factor (float) – The factor to subsample the data. By default it is 1.0, which means using all the data.
  • optimizer (garage.tf.Optimizer) – Optimizer used for fitting the model.
  • optimizer_args (dict) – Arguments for the optimizer. Default is None, which means no arguments.
  • use_trust_region (bool) – Whether to use a KL-divergence constraint.
  • max_kl_step (float) – KL divergence constraint for each iteration, if use_trust_region is active.
dist_info_sym(x_var, name=None)[source]

Create a symbolic graph of the distribution parameters.

Parameters:
  • x_var (tf.Tensor) – tf.Tensor of the input data.
  • name (str) – Name of the new graph.
Returns:

Outputs of the symbolic distribution parameter

graph.

Return type:

dict[tf.Tensor]

fit(xs, ys)[source]

Fit with input data xs and label ys.

Parameters:
  • xs (numpy.ndarray) – Input data.
  • ys (numpy.ndarray) – Label of input data.
get_params_internal(**args)[source]

Get the params, which are the trainable variables.

log_likelihood_sym(x_var, y_var, name=None)[source]

Create a symbolic graph of the log likelihood.

Parameters:
  • x_var (tf.Tensor) – Input tf.Tensor for the input data.
  • y_var (tf.Tensor) – Input tf.Tensor for the label of data.
  • name (str) – Name of the new graph.
Returns:

Output of the symbolic log-likelihood graph.

Return type:

tf.Tensor

predict(xs)[source]

Predict ys based on input xs.

Parameters:xs (numpy.ndarray) – Input data.
Returns:The predicted ys.
Return type:numpy.ndarray
class GaussianCNNRegressorModel(input_shape, output_dim, name='GaussianCNNRegressorModel', **kwargs)[source]

Bases: garage.tf.models.gaussian_cnn_model.GaussianCNNModel

GaussianCNNRegressor based on garage.tf.models.Model class.

This class can be used to perform regression by fitting a Gaussian distribution to the outputs.

Parameters:
  • filter_dims (tuple[int]) – Dimension of the filters. For example, (3, 5) means there are two convolutional layers. The filter for first layer is of dimension (3 x 3) and the second one is of dimension (5 x 5).
  • num_filters (tuple[int]) – Number of filters. For example, (3, 32) means there are two convolutional layers. The filter for the first layer has 3 channels and the second one with 32 channels.
  • strides (tuple[int]) – The stride of the sliding window. For example, (1, 2) means there are two convolutional layers. The stride of the filter for first layer is 1 and that of the second layer is 2.
  • padding (str) – The type of padding algorithm to use, either ‘SAME’ or ‘VALID’.
  • output_dim (int) – Output dimension of the model.
  • name (str) – Model name, also the variable scope.
  • hidden_sizes (list[int]) – Output dimension of dense layer(s) for the Convolutional model for mean. For example, (32, 32) means the network consists of two dense layers, each with 32 hidden units.
  • hidden_nonlinearity (callable) – Activation function for intermediate dense layer(s). It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • hidden_w_init (callable) – Initializer function for the weight of intermediate dense layer(s). The function should return a tf.Tensor.
  • hidden_b_init (callable) – Initializer function for the bias of intermediate dense layer(s). The function should return a tf.Tensor.
  • output_nonlinearity (callable) – Activation function for output dense layer. It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • output_w_init (callable) – Initializer function for the weight of output dense layer(s). The function should return a tf.Tensor.
  • output_b_init (callable) – Initializer function for the bias of output dense layer(s). The function should return a tf.Tensor.
  • learn_std (bool) – Is std trainable.
  • init_std (float) – Initial value for std.
  • adaptive_std (bool) – Is std a neural network. If False, it will be a parameter.
  • std_share_network (bool) – Boolean for whether mean and std share the same network.
  • std_filter_dims (tuple[int]) – Dimension of the filters. For example, (3, 5) means there are two convolutional layers. The filter for first layer is of dimension (3 x 3) and the second one is of dimension (5 x 5).
  • std_num_filters (tuple[int]) – Number of filters. For example, (3, 32) means there are two convolutional layers. The filter for the first layer has 3 channels and the second one with 32 channels.
  • std_strides (tuple[int]) – The stride of the sliding window. For example, (1, 2) means there are two convolutional layers. The stride of the filter for first layer is 1 and that of the second layer is 2.
  • std_padding (str) – The type of padding algorithm to use in std network, either ‘SAME’ or ‘VALID’.
  • std_hidden_sizes (list[int]) – Output dimension of dense layer(s) for the Conv for std. For example, (32, 32) means the Conv consists of two hidden layers, each with 32 hidden units.
  • min_std (float) – If not None, the std is at least the value of min_std, to avoid numerical issues.
  • max_std (float) – If not None, the std is at most the value of max_std, to avoid numerical issues.
  • std_hidden_nonlinearity – Nonlinearity for each hidden layer in the std network.
  • std_output_nonlinearity (callable) – Activation function for output dense layer in the std network. It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • std_output_w_init (callable) – Initializer function for the weight of output dense layer(s) in the std network.
  • std_parametrization (str) –

    How the std should be parametrized. There are two options: - exp: the logarithm of the std will be stored, and applied a

    exponential transformation
    • softplus: the std will be computed as log(1+exp(x))
  • layer_normalization (bool) – Bool for using layer normalization or not.
network_output_spec()[source]

Network output spec.

class GaussianMLPRegressor(input_shape, output_dim, name='GaussianMLPRegressor', hidden_sizes=(32, 32), hidden_nonlinearity=<function tanh>, hidden_w_init=<tensorflow.python.ops.init_ops.GlorotUniform object>, hidden_b_init=<tensorflow.python.ops.init_ops.Zeros object>, output_nonlinearity=None, output_w_init=<tensorflow.python.ops.init_ops.GlorotUniform object>, output_b_init=<tensorflow.python.ops.init_ops.Zeros object>, optimizer=None, optimizer_args=None, use_trust_region=True, max_kl_step=0.01, learn_std=True, init_std=1.0, adaptive_std=False, std_share_network=False, std_hidden_sizes=(32, 32), std_nonlinearity=None, layer_normalization=False, normalize_inputs=True, normalize_outputs=True, subsample_factor=1.0)[source]

Bases: garage.tf.regressors.base.StochasticRegressor

Fits data to a Gaussian whose parameters are estimated by an MLP.

Parameters:
  • input_shape (tuple[int]) – Input shape of the training data.
  • output_dim (int) – Output dimension of the model.
  • name (str) – Model name, also the variable scope.
  • hidden_sizes (list[int]) – Output dimension of dense layer(s) for the MLP for mean. For example, (32, 32) means the MLP consists of two hidden layers, each with 32 hidden units.
  • hidden_nonlinearity (Callable) – Activation function for intermediate dense layer(s). It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • hidden_w_init (Callable) – Initializer function for the weight of intermediate dense layer(s). The function should return a tf.Tensor.
  • hidden_b_init (Callable) – Initializer function for the bias of intermediate dense layer(s). The function should return a tf.Tensor.
  • output_nonlinearity (Callable) – Activation function for output dense layer. It should return a tf.Tensor. Set it to None to maintain a linear activation.
  • output_w_init (Callable) – Initializer function for the weight of output dense layer(s). The function should return a tf.Tensor.
  • output_b_init (Callable) – Initializer function for the bias of output dense layer(s). The function should return a tf.Tensor.
  • optimizer (garage.tf.Optimizer) – Optimizer for minimizing the negative log-likelihood.
  • optimizer_args (dict) – Arguments for the optimizer. Default is None, which means no arguments.
  • use_trust_region (bool) – Whether to use trust region constraint.
  • max_kl_step (float) – KL divergence constraint for each iteration.
  • learn_std (bool) – Is std trainable.
  • init_std (float) – Initial value for std.
  • adaptive_std (bool) – Is std a neural network. If False, it will be a parameter.
  • std_share_network (bool) – Boolean for whether mean and std share the same network.
  • std_hidden_sizes (list[int]) – Output dimension of dense layer(s) for the MLP for std. For example, (32, 32) means the MLP consists of two hidden layers, each with 32 hidden units.
  • std_nonlinearity (Callable) – Nonlinearity for each hidden layer in the std network.
  • layer_normalization (bool) – Bool for using layer normalization or not.
  • normalize_inputs (bool) – Bool for normalizing inputs or not.
  • normalize_outputs (bool) – Bool for normalizing outputs or not.
  • subsample_factor (float) – The factor to subsample the data. By default it is 1.0, which means using all the data.
dist_info_sym(x_var, name=None)[source]

Create a symbolic graph of the distribution parameters.

Parameters:
  • x_var (tf.Tensor) – tf.Tensor of the input data.
  • name (str) – Name of the new graph.
Returns:

Outputs of the symbolic distribution parameter

graph.

Return type:

dict[tf.Tensor]

fit(xs, ys)[source]

Fit with input data xs and label ys.

Parameters:
  • xs (numpy.ndarray) – Input data.
  • ys (numpy.ndarray) – Label of input data.
get_params_internal(**args)[source]

Get the params, which are the trainable variables.

log_likelihood_sym(x_var, y_var, name=None)[source]

Create a symbolic graph of the log likelihood.

Parameters:
  • x_var (tf.Tensor) – Input tf.Tensor for the input data.
  • y_var (tf.Tensor) – Input tf.Tensor for the label of data.
  • name (str) – Name of the new graph.
Returns:

Output of the symbolic log-likelihood graph.

Return type:

tf.Tensor

predict(xs)[source]

Predict ys based on input xs.

Parameters:xs (numpy.ndarray) – Input data.
Returns:The predicted ys.
Return type:np.ndarray
class Regressor(input_shape, output_dim, name)[source]

Bases: abc.ABC

Regressor base class.

Parameters:
  • input_shape (tuple[int]) – Input shape.
  • output_dim (int) – Output dimension.
  • name (str) – Name of the regressor.
fit(xs, ys)[source]

Fit with input data xs and label ys.

Parameters:
  • xs (numpy.ndarray) – Input data.
  • ys (numpy.ndarray) – Label of input data.
flat_to_params(flattened_params, **tags)[source]

Unflatten tensors according to their respective shapes.

Parameters:
  • flattened_params (np.ndarray) – A numpy array of flattened params.
  • tags (dict) – Some common tags include ‘regularizable’ and
  • 'trainable'
Returns:

A list of parameters reshaped to the shapes specified.

Return type:

tensors (List[np.ndarray])

get_param_shapes(**tags)[source]

Get the list of shapes for the parameters.

Parameters:
  • tags (dict) – Some common tags include ‘regularizable’ and
  • 'trainable'
Returns:

A list of shapes of each parameter.

Return type:

List[tuple[int]]

get_param_values(**tags)[source]

Get the list of values for the parameters.

Parameters:
  • tags (dict) – Some common tags include ‘regularizable’ and
  • 'trainable'
Returns:

A list of values of each parameter.

Return type:

List[np.ndarray]

get_params(**tags)[source]

Get the list of parameters, filtered by the provided tags.

Parameters:
  • tags (dict) – Some common tags include ‘regularizable’ and
  • 'trainable'
get_params_internal(**tags)[source]

Get the list of parameters.

This internal method does not perform caching, and should be implemented by subclasses.

Returns:A list of trainable variables of type list(tf.Variable)
predict(xs)[source]

Predict ys based on input xs.

Parameters:xs (numpy.ndarray) – Input data.
Returns:The predicted ys.
set_param_values(flattened_params, name=None, **tags)[source]

Set the values for the parameters.

Parameters:
  • tags (dict) – Some common tags include ‘regularizable’ and
  • 'trainable'
class StochasticRegressor(input_shape, output_dim, name)[source]

Bases: garage.tf.regressors.base.Regressor

StochasticRegressor base class.

Parameters:
  • input_shape (tuple[int]) – Input shape.
  • output_dim (int) – Output dimension.
  • name (str) – Name of the regressor.
dist_info_sym(x_var, name=None)[source]

Symbolic graph of the distribution.

Parameters:
  • x_var (tf.Tensor) – Input tf.Tensor for the input data.
  • name (str) – Name of the new graph.
Returns:

tf.Tensor output of the symbolic distribution.

log_likelihood_sym(x_var, y_var, name=None)[source]

Symbolic graph of the log likelihood.

Parameters:
  • x_var (tf.Tensor) – Input tf.Tensor for the input data.
  • y_var (tf.Tensor) – Input tf.Tensor for the label of data.
  • name (str) – Name of the new graph.
Returns:

tf.Tensor output of the symbolic log likelihood.