Release notes
This is the 0.11 release of TensorFlow Probability. It is tested and stable against TensorFlow version 2.3.0.
Change notes
Links point to examples in the [TFP 0.11.0 release Colab](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb).
- Distributions
- Support automatic vectorization in [`JointDistribution*AutoBatched`](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=B1V0yE8p8phS) instances.
- [Reproducible sampling, even in Eager](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=jq7obkAragZZ).
- Add [`Weibull` distribution](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=Tx3XuyRk8Oaa).
- Add [`TruncatedCauchy` distribution](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=xU2caROk3TMA).
- Add [`SphericalUniform` distribution](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=0e7rBpXZHVq9).
- Add [`PowerSpherical` distribution](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=Gn5xK-DZgQuq).
- Add [`LogLogistic` distribution](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=ChFLxqrK42kT).
- Add [`Bates` distribution](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=H0o-nCEi38vm).
- Add `GeneralizedNormal` distribution.
- Add [`JohnsonSU` distribution](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=OdElYf8V5rsG).
- Add [`ContinuousBernoulli` distribution](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=cjXyCRXQ7WT6).
- Simplify `MultivariateNormalDiagPlusLowRank` and make it tape-safer; remove deprecation.
- Added `KL(PowerSpherical || VonMisesFisher)`
- Adds `KL(PowerSpherical || UniformSpherical)`, `PowerSpherical.entropy` and `SphericalUniform.entropy`
- Fix gradient for `Gamma` samples with respect to `rate` parameter.
- Increase accuracy of default `Distribution.{log_}survival_function` if `log_cdf` is implemented but `cdf` is not.
- More accurate log_probs and entropies across many `Distribution`s that were subtracting lgammas under the hood.
- Fix `Multinomial` `log_prob` when classes have zero probability.
- Improve performance of `Multinomial` sampler when `total_count` is high.
- More accurate `Binomial` sampling and log_prob for large counts and small probabilities.
- `Binomial` will no longer emit samples below 0 or above `total_count`.
- Add `nan` handling for `Bates` `log_prob` and `cdf`.
- Allow named arguments in `JointDistribution*.sample()`.
- Bijectors:
- Add the `Split` bijector.
- Add [`GompertzCDF`](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=X_09anOqUqsE) and ShiftedGompertzCDF bijectors
- Add [`Sinh` bijector](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=uLDfGwOmFATa).
- `Scale` bijector can take in `log_scale` parameter.
- `Blockwise` now supports size changing bijectors.
- Allow using conditioning inputs in `AutoregressiveNetwork`.
- Move bijector caching logic to its own library.
- MCMC:
- [`tfp.mcmc` now supports stateless sampling](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=Z-ut4KYl_L53). `tfp.mcmc.sample_chain(..., seed=(1,2))` is expected to always return the same results (within a release), and is deterministic (provided the underlying kernel is deterministic).
- Better static shape inference for Metropolis-Hastings kernels with partially-specified shapes.
- `TransformedTransitionKernel` nests properly with itself and other wrapper kernels.
- [Pretty-printing MCMC kernel results](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=kKuCU_7_W0VS).
- Structured time series:
- Automatically constrain STS inference when weights have constrained support.
- Math:
- Add `tfp.math.bessel_iv_ratio` for ratios of modified bessel functions of the first kind.
- `round_exponential_bump_function` added to `tfp.math`.
- Support dynamic `num_steps` and custom convergence_criteria in `tfp.math.minimize`.
- Add `tfp.math.log_cosh`.
- Define more accurate `lbeta` and `log_gamma_difference`.
- Jax/Numpy substrates:
- TFP [runs on JAX!](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=zviD-PX1Hmeq)
- Expose `MaskedAutogregressiveFlow` to Numpy and JAX.
- Experimental:
- Add experimental [Sequential Monte Carlo](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=mFuJn_9MaEat) sample driver.
- Add experimental tools for estimating parameters of sequential models using iterated filtering.
- [Use `Distribution`s as `CompositeTensor`s](https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/TFP_Release_Notebook_0_11_0.ipynb#scrollTo=aaDlMlMQcqR8).
- Inference Gym: Add logistic regression.
- Add support for convergence criteria in `tfp.vi.fit_surrogate_posterior`.
- Other:
- Added `tfp.random.split_seed` for stateless sampling. Moved `tfp.math.random_{rademacher,rayleigh}` to `tfp.random.{rademacher,rayleigh}`.
- Possibly breaking change: `SeedStream` `seed` argument may not be a `Tensor`.
Huge thanks to all the contributors to this release!
- Alexey Radul
- anatoly
- Anudhyan Boral
- Ben Lee
- Brian Patton
- Christopher Suter
- Colin Carroll
- Cristi Cobzarenco
- Dan Moldovan
- Dave Moore
- David Kao
- Emily Fertig
- erdembanak
- Eugene Brevdo
- Fearghus Robert Keeble
- Frank Dellaert
- Gabriel Loaiza
- Gregory Flamich
- Ian Langmore
- Iqrar Agalosi Nureyza
- Jacob Burnim
- jeffpollock9
- jekbradbury
- Jimmy Yao
- johannespitz
- Joshua V. Dillon
- Junpeng Lao
- Kate Lin
- Ken Franko
- luke199629
- Mark Daoust
- Markus Kaiser
- Martin Jul
- Matthew Feickert
- Maxim Polunin
- Nicolas
- npfp
- Pavel Sountsov
- Peng YU
- Rebecca Chen
- Rif A. Saurous
- Ru Pei
- Sayam753
- Sharad Vikram
- Srinivas Vasudevan
- summeryue
- Tom Charnock
- Tres Popp
- Wataru Hashimoto
- Yash Katariya
- Zichun Ye