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 .
|