View source on GitHub |
Converts value
to a nested dict
(excluding all type_
info).
tf_agents.distributions.utils.parameters_to_dict(
value: tf_agents.distributions.utils.Params
,
tensors_only: bool = False
) -> Mapping[Text, Any]
Sub-dicts represent Params
objects; keys represent flattened nest structures
in value.params
.
Example:
scale_matrix = tf.Variable([[1.0, 2.0], [-1.0, 0.0]])
d = tfp.distributions.MultivariateNormalDiag(
loc=[1.0, 1.0], scale_diag=[2.0, 3.0], validate_args=True)
b = tfp.bijectors.ScaleMatvecLinearOperator(
scale=tf.linalg.LinearOperatorFullMatrix(matrix=scale_matrix),
adjoint=True)
b_d = b(d)
p = utils.get_parameters(b_d)
params_dict = utils.parameters_to_dict(p, tensors_only)
results in the nested dictionary, if tensors_only=False
:
{
"bijector": {"adjoint": True,
"scale": {"matrix": scale_matrix} },
"distribution": {"validate_args": True,
# These are deeply nested because we passed lists
# intead of numpy arrays for `loc` and `scale_diag`.
"scale_diag:0": 2.0,
"scale_diag:1": 3.0,
"loc:0": 1.0,
"loc:1": 1.0}
}
results if tensors_only=True
:
{
"bijector": {"scale": {"matrix": scale_matrix} },
"distribution": {},
}
The dictionary may then be modified or updated (e.g., in place), and converted
back to a Params
object using merge_to_parameters_from_dict
.
Args | |
---|---|
value
|
The (possibly recursively defined) Params .
|
tensors_only
|
Whether to include all parameters or only tensors and
TypeSpecs. If True , then only tf.Tensor and tf.TypeSpec leaf
parameters are emitted.
|
Returns | |
---|---|
A dict mapping value.params to flattened key/value pairs. Any
sub-Params objects become nested dicts.
|