tf_agents.bandits.multi_objective.multi_objective_scalarizer.LinearScalarizer

Scalarizes multple objectives by a linear combination.

Inherits From: Scalarizer

weights A Sequence of weights for linearly combining the objectives.
multi_objective_transform A Optional Callable that takes in a tf.Tensor of multiple objective values and applies an arbitrary transform that returns a tf.Tensor of transformed multiple objectives. This transform is applied before the linear scalarization. The transform should apply to each objective so that the shape of the multiobjectives and the transformed multiobjectives are equal. This is verified in _validate_scalarization_parameter_shape via call.

Methods

set_parameters

View source

Set the scalarization parameter of the LinearScalarizer.

Args
weights A a rank-2 tf.Tensor of weights shaped as [batch_size, self._num_of_objectives], where batch_size should match the batch size of the multi_objectives passed to the scalarizer call.

Raises
ValueError if the weights tensor is not rank-2, or has a last dimension size that does not match self._num_of_objectives.

__call__

View source

Returns a single reward by scalarizing multiple objectives.

Args
multi_objectives A Tensor of shape [batch_size, number_of_objectives], where each column represents an objective.

Returns: A Tensor of shape [batch_size] representing scalarized rewards.

Raises
ValueError if multi_objectives.shape.rank != 2.
ValueError if multi_objectives.shape.dims[1] != self._num_of_objectives.