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.
|
View source on GitHub