Tangent space of M for a distribution with axis-aligned subspace support.
Inherits From: TangentSpace
tfp.experimental.tangent_spaces.AxisAlignedSpace(
axis_mask
)
This subclass covers cases where the support of the distribution is
on an axis-aligned subspace, such as lower-triangular matrices. In
this special case we can represent the standard basis of the
subspace with a mask. The subclass is designed to support axis-aligned
injections like the FillTriangular Bijector.
Any Bijector calling the transform_projection method is expected
to define an experimental_update_live_dimensions method.
Args |
axis_mask
|
Tensor. A bit-mask of the live dimensions of the space.
|
Methods
View source
transform_coordinatewise(
x, f, **kwargs
)
Same as transform_dimension_preserving, for a coordinatewise f.
Default falls back to transform_dimension_preserving, which may
be overridden in subclasses.
| Args |
x
|
same as in transform_dimension_preserving.
|
f
|
same as in transform_dimension_preserving.
|
**kwargs
|
same as in transform_dimension_preserving.
|
| Returns |
log_density
|
A Tensor representing the log density correction of f at x
|
space
|
A TangentSpace representing the tangent to fM at f(x)
|
| Raises |
NotImplementedError
|
if the TangentSpace subclass does not implement
transform_dimension_preserving.
|
View source
transform_dimension_preserving(
x, f, **kwargs
)
Same as transform_general, assuming f goes from R^n to R^n.
Default falls back to transform_general, which may be overridden
in subclasses.
| Args |
x
|
same as in transform_general.
|
f
|
same as in transform_general.
|
**kwargs
|
same as in transform_general.
|
| Returns |
log_density
|
A Tensor representing the log density correction of f at x
|
space
|
A TangentSpace representing the tangent to fM at f(x)
|
| Raises |
NotImplementedError
|
if the TangentSpace subclass does not implement
transform_general.
|
View source
transform_general(
x, f, **kwargs
)
Returns the density correction, in log space, corresponding to f at x.
Also returns a new TangentSpace representing the tangent to fM at f(x).
| Args |
x
|
Tensor (structure). The point at which to calculate the density.
|
f
|
Bijector or one of its subclasses. The transformation that requires a
density correction based on this tangent space.
|
**kwargs
|
Optional keyword arguments as part of the Bijector.
|
| Returns |
log_density
|
A Tensor representing the log density correction of f at x
|
space
|
A TangentSpace representing the tangent to fM at f(x)
|
| Raises |
NotImplementedError
|
if the TangentSpace subclass does not implement
this method.
|
View source
transform_projection(
x, f, **kwargs
)
Same as transform_general, with f a projection (or its inverse).
Default falls back to transform_general, which may be overridden
in subclasses.
| Args |
x
|
same as in transform_general.
|
f
|
same as in transform_general.
|
**kwargs
|
same as in transform_general.
|
| Returns |
log_density
|
A Tensor representing the log density correction of f at x
|
space
|
A TangentSpace representing the tangent to fM at f(x)
|
| Raises |
NotImplementedError
|
if the TangentSpace subclass does not implement
transform_general.
|