in tensorflow_probability/python/bijectors/hypothesis_testlib.py [0:0]
def bijector_supports():
"""Returns a dict of supports for each instantiable bijector.
Warns if any `instantiable_bijectors` are found to have no declared supports,
once per Python process.
Returns:
supports: Python `dict` mapping `str` bijector name to the corresponding
`BijectorSupport` object.
"""
global BIJECTOR_SUPPORTS
if BIJECTOR_SUPPORTS is not None:
return BIJECTOR_SUPPORTS
Support = tfp_hps.Support # pylint: disable=invalid-name
supports = {
'_Invert':
BijectorSupport(Support.OTHER, Support.OTHER),
'Ascending':
BijectorSupport(Support.VECTOR_UNCONSTRAINED,
Support.VECTOR_STRICTLY_INCREASING),
'BatchNormalization':
BijectorSupport(Support.VECTOR_UNCONSTRAINED,
Support.VECTOR_UNCONSTRAINED),
'CholeskyOuterProduct':
BijectorSupport(Support.MATRIX_LOWER_TRIL_POSITIVE_DEFINITE,
Support.MATRIX_POSITIVE_DEFINITE),
'CholeskyToInvCholesky':
BijectorSupport(Support.MATRIX_LOWER_TRIL_POSITIVE_DEFINITE,
Support.MATRIX_LOWER_TRIL_POSITIVE_DEFINITE),
'CorrelationCholesky':
BijectorSupport(Support.VECTOR_SIZE_TRIANGULAR,
Support.CORRELATION_CHOLESKY),
'Cumsum':
BijectorSupport(Support.VECTOR_UNCONSTRAINED,
Support.VECTOR_UNCONSTRAINED),
'DiscreteCosineTransform':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_UNCONSTRAINED),
'Exp':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_POSITIVE),
'Expm1':
BijectorSupport(Support.SCALAR_UNCONSTRAINED, Support.SCALAR_GT_NEG1),
'FillScaleTriL':
BijectorSupport(Support.VECTOR_SIZE_TRIANGULAR,
Support.MATRIX_LOWER_TRIL_POSITIVE_DEFINITE),
'FillTriangular':
BijectorSupport(Support.VECTOR_SIZE_TRIANGULAR,
Support.MATRIX_LOWER_TRIL),
'FrechetCDF': # The domain is parameter dependent.
BijectorSupport(Support.OTHER, Support.SCALAR_IN_0_1),
'GeneralizedExtremeValueCDF': # The domain is parameter dependent.
BijectorSupport(Support.OTHER, Support.SCALAR_IN_0_1),
'GeneralizedPareto': # The range is parameter dependent.
BijectorSupport(Support.SCALAR_UNCONSTRAINED, Support.OTHER),
'GompertzCDF':
BijectorSupport(Support.SCALAR_POSITIVE, Support.SCALAR_IN_0_1),
'GumbelCDF':
BijectorSupport(Support.SCALAR_UNCONSTRAINED, Support.SCALAR_IN_0_1),
'Householder':
BijectorSupport(Support.VECTOR_UNCONSTRAINED,
Support.VECTOR_UNCONSTRAINED),
'Identity':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_UNCONSTRAINED),
'Inline':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_UNCONSTRAINED),
'Invert':
BijectorSupport(Support.OTHER, Support.OTHER),
'IteratedSigmoidCentered':
BijectorSupport(Support.VECTOR_UNCONSTRAINED,
Support.VECTOR_POSITIVE_WITH_L1_NORM_1_SIZE_GT1),
'KumaraswamyCDF':
BijectorSupport(Support.SCALAR_IN_0_1, Support.SCALAR_IN_0_1),
'Log':
BijectorSupport(Support.SCALAR_POSITIVE,
Support.SCALAR_UNCONSTRAINED),
'Log1p':
BijectorSupport(Support.SCALAR_GT_NEG1, Support.SCALAR_UNCONSTRAINED),
'MatrixInverseTriL':
BijectorSupport(Support.MATRIX_LOWER_TRIL_POSITIVE_DEFINITE,
Support.MATRIX_LOWER_TRIL_POSITIVE_DEFINITE),
'MatvecLU':
BijectorSupport(Support.VECTOR_UNCONSTRAINED,
Support.VECTOR_UNCONSTRAINED),
'MoyalCDF':
BijectorSupport(Support.SCALAR_UNCONSTRAINED, Support.SCALAR_IN_0_1),
'NormalCDF':
BijectorSupport(Support.SCALAR_UNCONSTRAINED, Support.SCALAR_IN_0_1),
'Ordered':
BijectorSupport(Support.VECTOR_STRICTLY_INCREASING,
Support.VECTOR_UNCONSTRAINED),
'Permute':
BijectorSupport(Support.VECTOR_UNCONSTRAINED,
Support.VECTOR_UNCONSTRAINED),
'Power':
BijectorSupport(Support.SCALAR_POSITIVE,
Support.SCALAR_POSITIVE),
'PowerTransform': # The domain is parameter dependent.
BijectorSupport(Support.OTHER, Support.SCALAR_POSITIVE),
'RationalQuadraticSpline':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_UNCONSTRAINED),
'RayleighCDF':
BijectorSupport(Support.SCALAR_NON_NEGATIVE,
Support.SCALAR_IN_0_1),
'Reciprocal':
BijectorSupport(Support.SCALAR_NON_ZERO, Support.SCALAR_NON_ZERO),
'Reshape':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_UNCONSTRAINED),
'Scale':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_UNCONSTRAINED),
'ScaleMatvecDiag':
BijectorSupport(Support.VECTOR_UNCONSTRAINED,
Support.VECTOR_UNCONSTRAINED),
'ScaleMatvecLU':
BijectorSupport(Support.VECTOR_UNCONSTRAINED,
Support.VECTOR_UNCONSTRAINED),
'ScaleMatvecTriL':
BijectorSupport(Support.VECTOR_UNCONSTRAINED,
Support.VECTOR_UNCONSTRAINED),
'Shift':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_UNCONSTRAINED),
'ShiftedGompertzCDF':
BijectorSupport(Support.SCALAR_POSITIVE, Support.SCALAR_IN_0_1),
'Sigmoid':
BijectorSupport(Support.SCALAR_UNCONSTRAINED, Support.SCALAR_IN_0_1),
'Sinh':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_UNCONSTRAINED),
'SinhArcsinh':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_UNCONSTRAINED),
'SoftClip':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.OTHER),
'Softfloor':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_UNCONSTRAINED),
'Softplus':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_POSITIVE),
'Softsign':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_IN_NEG1_1),
'SoftmaxCentered':
BijectorSupport(Support.VECTOR_UNCONSTRAINED,
Support.VECTOR_POSITIVE_WITH_L1_NORM_1_SIZE_GT1),
'Square':
BijectorSupport(Support.SCALAR_NON_NEGATIVE,
Support.SCALAR_NON_NEGATIVE),
'Tanh':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_IN_NEG1_1),
'TransformDiagonal':
BijectorSupport(Support.MATRIX_UNCONSTRAINED, Support.OTHER),
'Transpose':
BijectorSupport(Support.SCALAR_UNCONSTRAINED,
Support.SCALAR_UNCONSTRAINED),
'WeibullCDF':
BijectorSupport(Support.SCALAR_NON_NEGATIVE, Support.SCALAR_IN_0_1),
}
missing_keys = set(INSTANTIABLE_BIJECTORS.keys()) - set(supports.keys())
if missing_keys:
raise ValueError('Missing bijector supports: {}'.format(missing_keys))
BIJECTOR_SUPPORTS = supports
return BIJECTOR_SUPPORTS