R/bijectors.R
tfb_rational_quadratic_spline.Rd
This transformation represents a monotonically increasing piecewise rational
quadratic function. Outside of the bounds of knot_x
/knot_y
, the transform
behaves as an identity function.
tfb_rational_quadratic_spline( bin_widths, bin_heights, knot_slopes, range_min = -1, validate_args = FALSE, name = NULL )
bin_widths | The widths of the spans between subsequent knot |
---|---|
bin_heights | The heights of the spans between subsequent knot |
knot_slopes | The slope of the spline at each knot, a floating point
|
range_min | The |
validate_args | Logical, default FALSE. Whether to validate input with asserts. If validate_args is FALSE, and the inputs are invalid, correct behavior is not guaranteed. |
name | name prefixed to Ops created by this class. |
a bijector instance.
Typically this bijector will be used as part of a chain, with splines for
trailing x
dimensions conditioned on some of the earlier x
dimensions, and
with the inverse then solved first for unconditioned dimensions, then using
conditioning derived from those inverses, and so forth.
For each argument, the innermost axis indexes bins/knots and batch axes
index axes of x
/y
spaces. A RationalQuadraticSpline
with a separate
transform for each of three dimensions might have bin_widths
shaped
[3, 32]
. To use the same spline for each of x
's three dimensions we may
broadcast against x
and use a bin_widths
parameter shaped [32]
.
Parameters will be broadcast against each other and against the input
x
/y
s, so if we want fixed slopes, we can use kwarg knot_slopes=1
.
A typical recipe for acquiring compatible bin widths and heights would be:
nbins <- unconstrained_vector$shape[-1] range_min <- 1 range_max <- 1 min_bin_size = 1e-2 scale <- range_max - range_min - nbins * min_bin_size bin_widths = tf$math$softmax(unconstrained_vector) * scale + min_bin_size
For usage examples see tfb_forward()
, tfb_inverse()
, tfb_inverse_log_det_jacobian()
.
Other bijectors:
tfb_absolute_value()
,
tfb_affine_linear_operator()
,
tfb_affine_scalar()
,
tfb_affine()
,
tfb_ascending()
,
tfb_batch_normalization()
,
tfb_blockwise()
,
tfb_chain()
,
tfb_cholesky_outer_product()
,
tfb_cholesky_to_inv_cholesky()
,
tfb_correlation_cholesky()
,
tfb_cumsum()
,
tfb_discrete_cosine_transform()
,
tfb_expm1()
,
tfb_exp()
,
tfb_ffjord()
,
tfb_fill_scale_tri_l()
,
tfb_fill_triangular()
,
tfb_glow()
,
tfb_gompertz_cdf()
,
tfb_gumbel_cdf()
,
tfb_gumbel()
,
tfb_identity()
,
tfb_inline()
,
tfb_invert()
,
tfb_iterated_sigmoid_centered()
,
tfb_kumaraswamy_cdf()
,
tfb_kumaraswamy()
,
tfb_lambert_w_tail()
,
tfb_masked_autoregressive_default_template()
,
tfb_masked_autoregressive_flow()
,
tfb_masked_dense()
,
tfb_matrix_inverse_tri_l()
,
tfb_matvec_lu()
,
tfb_normal_cdf()
,
tfb_ordered()
,
tfb_pad()
,
tfb_permute()
,
tfb_power_transform()
,
tfb_rayleigh_cdf()
,
tfb_real_nvp_default_template()
,
tfb_real_nvp()
,
tfb_reciprocal()
,
tfb_reshape()
,
tfb_scale_matvec_diag()
,
tfb_scale_matvec_linear_operator()
,
tfb_scale_matvec_lu()
,
tfb_scale_matvec_tri_l()
,
tfb_scale_tri_l()
,
tfb_scale()
,
tfb_shifted_gompertz_cdf()
,
tfb_shift()
,
tfb_sigmoid()
,
tfb_sinh_arcsinh()
,
tfb_sinh()
,
tfb_softmax_centered()
,
tfb_softplus()
,
tfb_softsign()
,
tfb_split()
,
tfb_square()
,
tfb_tanh()
,
tfb_transform_diagonal()
,
tfb_transpose()
,
tfb_weibull_cdf()
,
tfb_weibull()