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.MatrixNormalandtfd.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
Distributionbatch shapes automatically from parameter annotations. - Ensuring
Exponential.cdf(x)is always 0 forx < 0. VectorExponentialLinearOperatorandVectorExponentialDiagdistributions now return variance, covariance, and standard deviation of the correct shape.Batesdistribution now returns mean of the correct shape.GeneralizedParetonow returns variance of the correct shape.Deterministicdistribution 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.
InverseGaussianno longer emits negative samples for largeloc / concentrationGammaGamma,GeneralizedExtremeValue,LogLogistic,LogNormal,ProbitBernoullishould no longer computenanlog_probs on their own samples.VonMisesFisher,Pareto, andGeneralizedExtremeValueshould no longer emit samples numerically outside their support.- Improve numerical stability of
tfd.ContinuousBernoulliand deprecatelimsparameter.
- 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.FillScaleTriLinstead. - Adds
cls.parameter_properties()annotations for Bijectors. - Extend range
tfb.Powerto 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_integralsadded 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
ThinningKerneltoexperimental.mcmc. - Adds
experimental.mcmc.run_kerneldriver as a candidate streaming-based replacement tomcmc.sample_chain
-
VI
- Adds
build_split_flow_surrogate_posteriortotfp.experimental.vito build structured VI surrogate posteriors from normalizing flows. - Adds
build_affine_surrogate_posteriortotfp.experimental.vifor construction of ADVI surrogate posteriors from an event shape. - Adds
build_affine_surrogate_posterior_from_base_distributiontotfp.experimental.vito 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_ldltoexperimental.linalg. - Add
marginal_fnargument toGaussianProcess(seeno_pivot_ldl). - Added
tfp.math.atan_difference(x, y) - Add
tfp.math.erfcx,tfp.math.logerfcandtfp.math.logerfcx - Add
tfp.math.dawsnfor Dawson's Integral. - Add
tfp.math.igammaincinv,tfp.math.igammacinv. - Add
tfp.math.sqrt1pm1. - Add
LogitNormal.stddev_approxandLogitNormal.variance_approx - Add
tfp.math.owens_tfor the Owen's T function. - Add
bracket_rootmethod to automatically initialize bounds for a root search. - Add Chandrupatla's method for finding roots of scalar functions.
-
Stats
tfp.stats.windowed_meanefficiently computes windowed means.tfp.stats.windowed_varianceefficiently and accurately computes windowed variances.tfp.stats.cumulative_varianceefficiently and accurately computes cumulative variances.RunningCovarianceand 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.functionwrapping. - Add option to speed up filtering in
LinearGaussianSSMwhen 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_seedis now available in thetfp.randomnamespace.- 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