TensorFlow Probability 0.13.0
Release notes
This is the 0.13 release of TensorFlow Probability. It is
tested and stable against TensorFlow version 2.5.0.
See the visual release notebook in colab.
Change notes
-
Distributions
- Adds
tfd.BetaQuotient
- Adds
tfd.DeterminantalPointProcess
- Adds
tfd.ExponentiallyModifiedGaussian
- Adds
tfd.MatrixNormal
andtfd.MatrixT
- Adds
tfd.NormalInverseGaussian
- Adds
tfd.SigmoidBeta
- Adds
tfp.experimental.distribute.Sharded
- Adds
tfd.BatchBroadcast
- Adds
tfd.Masked
- Adds JAX support for
tfd.Zipf
- Adds Implicit Reparameterization Gradients to
tfd.InverseGaussian
. - Adds quantiles for
tfd.{Chi2,ExpGamma,Gamma,GeneralizedNormal,InverseGamma}
- Derive
Distribution
batch shapes automatically from parameter annotations. - Ensuring
Exponential.cdf(x)
is always 0 forx < 0
. VectorExponentialLinearOperator
andVectorExponentialDiag
distributions now return variance, covariance, and standard deviation of the correct shape.Bates
distribution now returns mean of the correct shape.GeneralizedPareto
now returns variance of the correct shape.Deterministic
distribution now returns mean, mode, and variance of the correct shape.- Ensure that
JointDistributionPinned
's support bijectors respect autobatching. - Now systematically testing log_probs of most distributions for numerical accuracy.
InverseGaussian
no longer emits negative samples for largeloc / concentration
GammaGamma
,GeneralizedExtremeValue
,LogLogistic
,LogNormal
,ProbitBernoulli
should no longer computenan
log_probs on their own samples.VonMisesFisher
,Pareto
, andGeneralizedExtremeValue
should no longer emit samples numerically outside their support.- Improve numerical stability of
tfd.ContinuousBernoulli
and deprecatelims
parameter.
- Adds
-
Bijectors
- Add bijectors to mimic
tf.nest.flatten
(tfb.tree_flatten
) andtf.nest.pack_sequence_as
(tfb.pack_sequence_as
). - Adds
tfp.experimental.bijectors.Sharded
- Remove deprecated
tfb.ScaleTrilL
. Usetfb.FillScaleTriL
instead. - Adds
cls.parameter_properties()
annotations for Bijectors. - Extend range
tfb.Power
to all reals for odd integer powers. - Infer the log-deg-jacobian of scalar bijectors using autodiff, if not otherwise specified.
- Add bijectors to mimic
-
MCMC
- MCMC diagnostics support arbitrary structures of states, not just lists.
remc_thermodynamic_integrals
added totfp.experimental.mcmc
- Adds
tfp.experimental.mcmc.windowed_adaptive_hmc
- Adds an experimental API for initializing a Markov chain from a near-zero uniform distribution in unconstrained space.
tfp.experimental.mcmc.init_near_unconstrained_zero
- Adds an experimental utility for retrying Markov Chain initialization until an acceptable point is found.
tfp.experimental.mcmc.retry_init
- Shuffling experimental streaming MCMC API to slot into tfp.mcmc with a minimum of disruption.
- Adds
ThinningKernel
toexperimental.mcmc
. - Adds
experimental.mcmc.run_kernel
driver as a candidate streaming-based replacement tomcmc.sample_chain
-
VI
- Adds
build_split_flow_surrogate_posterior
totfp.experimental.vi
to build structured VI surrogate posteriors from normalizing flows. - Adds
build_affine_surrogate_posterior
totfp.experimental.vi
for construction of ADVI surrogate posteriors from an event shape. - Adds
build_affine_surrogate_posterior_from_base_distribution
totfp.experimental.vi
to enable construction of ADVI surrogate posteriors with correlation structures induced by affine transformations.
- Adds
-
MAP/MLE
- Added convenience method
tfp.experimental.util.make_trainable(cls)
to create trainable instances of distributions and bijectors.
- Added convenience method
-
Math/linalg
- Add trapezoidal rule to tfp.math.
- Add
tfp.math.log_bessel_kve
. - Add
no_pivot_ldl
toexperimental.linalg
. - Add
marginal_fn
argument toGaussianProcess
(seeno_pivot_ldl
). - Added
tfp.math.atan_difference(x, y)
- Add
tfp.math.erfcx
,tfp.math.logerfc
andtfp.math.logerfcx
- Add
tfp.math.dawsn
for Dawson's Integral. - Add
tfp.math.igammaincinv
,tfp.math.igammacinv
. - Add
tfp.math.sqrt1pm1
. - Add
LogitNormal.stddev_approx
andLogitNormal.variance_approx
- Add
tfp.math.owens_t
for the Owen's T function. - Add
bracket_root
method to automatically initialize bounds for a root search. - Add Chandrupatla's method for finding roots of scalar functions.
-
Stats
tfp.stats.windowed_mean
efficiently computes windowed means.tfp.stats.windowed_variance
efficiently and accurately computes windowed variances.tfp.stats.cumulative_variance
efficiently and accurately computes cumulative variances.RunningCovariance
and friends can now be initialized from an example Tensor, not just from explicit shape and dtype.- Cleaner API for
RunningCentralMoments
,RunningMean
,RunningPotentialScaleReduction
.
-
STS
- Speed up STS forecasting and decomposition using internal
tf.function
wrapping. - Add option to speed up filtering in
LinearGaussianSSM
when only the final step's results are required. - Variational Inference with Multipart Bijectors: example notebook with the Radon model.
- Add experimental support for transforming any distribution into a preconditioning bijector.
- Speed up STS forecasting and decomposition using internal
-
Other
- Distributed inference example notebook
sanitize_seed
is now available in thetfp.random
namespace.- Add
tfp.random.spherical_uniform
.
Huge thanks to all the contributors to this release!
- Abhinav Upadhyay
- axch
- Brian Patton
- Chris Jewell
- Christopher Suter
- colcarroll
- Dave Moore
- ebrevdo
- Emily Fertig
- Harald Husum
- Ivan Ukhov
- jballe
- jburnim
- Jeff Pollock
- Jensun Ravichandran
- JulianWgs
- junpenglao
- jvdillon
- j-wilson
- kateslin
- Kristian Hartikainen
- ksachdeva
- langmore
- leben
- mattjj
- Nicola De Cao
- Pavel Sountsov
- paweller
- phawkins
- Prasanth Shyamsundar
- Rene Jean Corneille
- Samuel Marks
- scottzhu
- sharadmv
- siege
- Simon Dirmeier
- Srinivas Vasudevan
- Thomas Markovich
- ursk
- Uzair
- vanderplas
- yileiyang
- ZeldaMariet
- Zichun Ye