tfd.MultivariateNormalTriL has not implemented quantile()?
Hi,
I tried to get a quantile of MultivariateNormalTriL distribution, but I got an error:
Traceback (most recent call last): File "
", line 1, in File "/home/kai/miniconda3/envs/tf/lib/python3.10/site-packages/tensorflow_probability/python/distributions/distribution.py", line 1573, in quantile return self._call_quantile(value, name, **kwargs) File "/home/kai/miniconda3/envs/tf/lib/python3.10/site-packages/tensorflow_probability/python/distributions/distribution.py", line 1553, in _call_quantile return self._quantile(value, **kwargs) File "/home/kai/miniconda3/envs/tf/lib/python3.10/site-packages/tensorflow_probability/python/distributions/transformed_distribution.py", line 471, in _quantile self.bijector._internal_is_increasing(**bijector_kwargs), # pylint: disable=protected-access File "/home/kai/miniconda3/envs/tf/lib/python3.10/site-packages/tensorflow_probability/python/bijectors/bijector.py", line 1352, in _internal_is_increasing return self._call_is_increasing(name, **kwargs) File "/home/kai/miniconda3/envs/tf/lib/python3.10/site-packages/tensorflow_probability/python/bijectors/bijector.py", line 1336, in _call_is_increasing return tf.identity(self._is_increasing(**kwargs)) File "/home/kai/miniconda3/envs/tf/lib/python3.10/site-packages/tensorflow_probability/python/bijectors/chain.py", line 137, in _is_increasing is_increasing, b._internal_is_increasing(**kwargs.get(b.name, {}))) # pylint: disable=protected-access File "/home/kai/miniconda3/envs/tf/lib/python3.10/site-packages/tensorflow_probability/python/bijectors/bijector.py", line 1352, in _internal_is_increasing return self._call_is_increasing(name, **kwargs) File "/home/kai/miniconda3/envs/tf/lib/python3.10/site-packages/tensorflow_probability/python/bijectors/bijector.py", line 1336, in _call_is_increasing return tf.identity(self._is_increasing(**kwargs)) File "/home/kai/miniconda3/envs/tf/lib/python3.10/site-packages/tensorflow_probability/python/bijectors/bijector.py", line 1331, in _is_increasing raise NotImplementedError(f' _is_increasingnot implemented in {cls}.') NotImplementedError:_is_increasingnot implemented in <class 'tensorflow_probability.python.bijectors.scale_matvec_linear_operator.ScaleMatvecLinearOperator'>.
Code
>>> tfd = tfp.distributions
>>> # Initialize a single 3-variate Gaussian.
>>> mu = [1., 2, 3]
>>> cov = [[ 0.36, 0.12, 0.06],
... [ 0.12, 0.29, -0.13],
... [ 0.06, -0.13, 0.26]]
>>> scale = tf.linalg.cholesky(cov)
2023-04-28 19:14:26.857851: I tensorflow/core/util/cuda_solvers.cc:179] Creating GpuSolver handles for stream 0x56084b9cb4a0
>>> mvn = tfd.MultivariateNormalTriL(
... loc=mu,
... scale_tril=scale)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'tfd' is not defined. Did you mean: 'tfp'?
>>> tfd = tfp.distributions
>>> mvn = tfd.MultivariateNormalTriL(
... loc=mu,
... scale_tril=scale)
>>> mvn.quantile(0.95)