github tensorflow/probability v0.13.0
TensorFlow Probability 0.13.0

latest releases: v0.24.0, v0.23.0, v0.22.1...
2 years ago

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 and tfd.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 for x < 0.
    • VectorExponentialLinearOperator and VectorExponentialDiag 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 large loc / concentration
    • GammaGamma, GeneralizedExtremeValue, LogLogistic, LogNormal, ProbitBernoulli should no longer compute nan log_probs on their own samples. VonMisesFisher, Pareto, and GeneralizedExtremeValue should no longer emit samples numerically outside their support.
    • Improve numerical stability of tfd.ContinuousBernoulli and deprecate lims parameter.
  • Bijectors

    • Add bijectors to mimic tf.nest.flatten (tfb.tree_flatten) and tf.nest.pack_sequence_as (tfb.pack_sequence_as).
    • Adds tfp.experimental.bijectors.Sharded
    • Remove deprecated tfb.ScaleTrilL. Use tfb.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.
  • MCMC

    • MCMC diagnostics support arbitrary structures of states, not just lists.
    • remc_thermodynamic_integrals added to tfp.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 to experimental.mcmc.
    • Adds experimental.mcmc.run_kernel driver as a candidate streaming-based replacement to mcmc.sample_chain
  • VI

    • Adds build_split_flow_surrogate_posterior to tfp.experimental.vi to build structured VI surrogate posteriors from normalizing flows.
    • Adds build_affine_surrogate_posterior to tfp.experimental.vi for construction of ADVI surrogate posteriors from an event shape.
    • Adds build_affine_surrogate_posterior_from_base_distribution to tfp.experimental.vi to enable construction of ADVI surrogate posteriors with correlation structures induced by affine transformations.
  • MAP/MLE

    • Added convenience method tfp.experimental.util.make_trainable(cls) to create trainable instances of distributions and bijectors.
  • Math/linalg

    • Add trapezoidal rule to tfp.math.
    • Add tfp.math.log_bessel_kve.
    • Add no_pivot_ldl to experimental.linalg.
    • Add marginal_fn argument to GaussianProcess (see no_pivot_ldl).
    • Added tfp.math.atan_difference(x, y)
    • Add tfp.math.erfcx, tfp.math.logerfc and tfp.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 and LogitNormal.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.
  • Other

    • Distributed inference example notebook
    • sanitize_seed is now available in the tfp.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

Don't miss a new probability release

NewReleases is sending notifications on new releases.