tfp.experimental.tangent_spaces.AxisAlignedSpace

Tangent space of M for a distribution with axis-aligned subspace support.

Inherits From: TangentSpace

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.

axis_mask Tensor. A bit-mask of the live dimensions of the space.

Methods

transform_coordinatewise

View source

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.

transform_dimension_preserving

View source

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.

transform_general

View source

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.

transform_projection

View source

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.