Releases: tensorflow/probability
TensorFlow Probability 0.16.0
Release notes
This is the 0.16.0 release of TensorFlow Probability. It is tested and stable against TensorFlow version 2.8.0 and JAX 0.3.0 .
Change notes
[coming soon]
Huge thanks to all the contributors to this release!
- Alexey Radul
- Ben Lee
- Billy Lamberta
- Brian Patton
- Chansoo Lee
- Christopher Suter
- Colin Carroll
- Dave Moore
- Du Phan
- Emily Fertig
- François Chollet
- Gianluigi Silvestri
- Jacob Burnim
- Jake Taylor
- Junpeng Lao
- Matthew Johnson
- Michael Weiss
- Pavel Sountsov
- Peter Hawkins
- Rebecca Chen
- Sharad Vikram
- Soo Sung
- Srinivas Vasudevan
- Urs Köster
TensorFlow Probability 0.15.0
Release notes
This is the 0.15 release of TensorFlow Probability. It is tested and stable against TensorFlow version 2.7.0.
Change notes
-
Distributions
- Add
tfd.StudentTProcessRegressionModel
. - Distributions' statistics now all have batch shape matching the Distribution itself.
JointDistributionCoroutine
no longer requiresRoot
whensample_shape==()
.- Support
sample_distributions
from autobatched joint distributions. - Expose
mask
argument to support missing observations in HMM log probs. BetaBinomial.log_prob
is more accurate when all trials succeed.- Support broadcast batch shapes in
MixtureSameFamily
. - Add
cholesky_fn
argument toGaussianProcess
,GaussianProcessRegressionModel
, andSchurComplement
. - Add staticmethod for precomputing GPRM for more efficient inference in TensorFlow.
- Add
GaussianProcess.posterior_predictive
.
- Add
-
Bijectors
- Bijectors parameterized by distinct
tf.Variable
s no longer register as==
. - BREAKING CHANGE: Remove deprecated
AffineScalar
bijector. Please usetfb.Shift(shift)(tfb.Scale(scale))
instead. - BREAKING CHANGE: Remove deprecated
Affine
andAffineLinearOperator
bijectors.
- Bijectors parameterized by distinct
-
PSD kernels
- Add
tfp.math.psd_kernels.ChangePoint
. - Add slicing support for
PositiveSemidefiniteKernel
. - Add
inverse_length_scale
parameter to kernels. - Add
parameter_properties
to PSDKernel along with automated batch shape inference.
- Add
-
VI
- Add support for importance-weighted variational objectives.
- Support arbitrary distribution types in
tfp.experimental.vi.build_factored_surrogate_posterior
.
-
STS
- Support
+
syntax for summingStructuralTimeSeries
models.
- Support
-
Math
- Enable JAX/NumPy backends for
tfp.math.ode
. - Allow returning auxiliary information from
tfp.math.value_and_gradient
.
- Enable JAX/NumPy backends for
-
Experimental
- Speedup to
experimental.mcmc
windowed samplers. - Support unbiased gradients through particle filtering via stop-gradient resampling.
ensemble_kalman_filter_log_marginal_likelihood
(log evidence) computation added totfe.sequential
.- Add experimental joint-distribution layers library.
- Delete
tfp.experimental.distributions.JointDensityCoroutine
. - Add experimental special functions for high-precision computation on a TPU.
- Add custom log-prob ratio for
IncrementLogProb
. - Use
foldl
inno_pivot_ldl
instead ofwhile_loop
.
- Speedup to
-
Other
- TFP should now support numpy 1.20+.
- BREAKING CHANGE: Stock unpacking seeds when splitting in JAX.
Huge thanks to all the contributors to this release!
- 8bitmp3
- adriencorenflos
- Alexey Radul
- Allen Lavoie
- Ben Lee
- Billy Lamberta
- Brian Patton
- Christopher Suter
- Colin Carroll
- Dave Moore
- Du Phan
- Emily Fertig
- Faizan Muhammad
- George Necula
- George Tucker
- Grace Luo
- Ian Langmore
- Jacob Burnim
- Jake VanderPlas
- Jeremiah Liu
- Junpeng Lao
- Kaan
- Luke Wood
- Max Jiang
- Mihai Maruseac
- Neil Girdhar
- Paul Chiang
- Pavel Izmailov
- Pavel Sountsov
- Peter Hawkins
- Rebecca Chen
- Richard Song
- Rif A. Saurous
- Ron Shapiro
- Roy Frostig
- Sharad Vikram
- Srinivas Vasudevan
- Tomohiro Endo
- Urs Köster
- William C Grisaitis
- Yilei Yang
TensorFlow Probability 0.14.1
Release notes
This is the 0.14.1 release of TensorFlow Probability. It is tested and stable against TensorFlow version 2.6.0 and JAX 0.2.21.
Change notes
[coming soon]
Huge thanks to all the contributors to this release!
- 8bitmp3
- adriencorenflos
- allenl
- axch
- bjp
- blamb
- csuter
- colcarroll
- davmre
- derifatives
- emilyaf
- europeanplaice
- Frightera
- fmuham
- gcluo
- GianluigiSilvestri
- gisilvs
- gjt
- grisaitis
- harahu
- jburnim
- langmore
- leben
- lukewood
- mihaimaruseac
- NeilGirdhar
- phandu
- phawkins
- rechen
- ronshapiro
- scottzhu
- sharadmv
- siege
- srvasude
- ursk
- vanderplas
- xingyousong
- yileiyang
TensorFlow Probability 0.14.0
Release notes
This is the 0.14 release of TensorFlow Probability. It is tested and stable against TensorFlow version 2.6.0 and JAX 0.2.20.
Change notes
Please see the release notes for TFP 0.14.1 at https://github.com/tensorflow/probability/releases/v0.14.1 .
Huge thanks to all the contributors to this release!
- 8bitmp3
- adriencorenflos
- allenl
- axch
- bjp
- blamb
- csuter
- colcarroll
- davmre
- derifatives
- emilyaf
- europeanplaice
- Frightera
- fmuham
- gcluo
- GianluigiSilvestri
- gisilvs
- gjt
- grisaitis
- harahu
- jburnim
- langmore
- leben
- lukewood
- mihaimaruseac
- NeilGirdhar
- phandu
- phawkins
- rechen
- ronshapiro
- scottzhu
- sharadmv
- siege
- srvasude
- ursk
- vanderplas
- xingyousong
- yileiyang
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
TensorFlow Probability 0.13.0-rc0
This is the RC0 release candidate of the TensorFlow Probability 0.13 release.
It is tested against TensorFlow 2.5.0.
TensorFlow Probability 0.12.2
This is the 0.12.2 release of TensorFlow Probability, a patch release to cap the JAX dependency to a compatible version. It is tested and stable against TensorFlow version 2.4.0.
For detailed change notes, please see the 0.12.1 release at https://github.com/tensorflow/probability/releases/tag/v0.12.1 .
TensorFlow Probability 0.12.1
Release notes
This is the 0.12.1 release of TensorFlow Probability. It is tested and stable against TensorFlow version 2.4.0.
Change notes
NOTE: Links point to examples in the TFP 0.12.1 release Colab.
Bijectors:
- Add implementation of GLOW at
tfp.bijectors.Glow
. - Add
RayleighCDF
bijector. - Add
Ascending
bijector and deprecateOrdered
. - Add optional
low
parameter to theSoftplus
bijector. - Enable
ScaleMatvecLinearOperator
bijector to wrap blockwise LinearOperators to form a multipart bijectors. - Allow passing kwargs to
Blockwise
. - Bijectors now share a global cache, keyed by the bijector parameters and the value being transformed.
Distributions:
- BREAKING: Remove deprecated
HiddenMarkovModel.num_states
property. - BREAKING: Change the naming scheme of un-named variables in JointDistributions.
- BREAKING: Remove deprecated
batch_shape
andevent_shape
arguments ofTransformedDistribution
. - Add
Skellam
distribution. JointDistributionCoroutine{AutoBatched}
now uses namedtuples as the sample dtype.- von-Mises Fisher distribution now works for dimensions > 5 and implements
VonMisesFisher.entropy
. - Add
ExpGamma
andExpInverseGamma
distributions. JointDistribution*AutoBatched
now support (reproducible) tensor seeds.- Add KL(VonMisesFisher || SphericalUniform).
- Added
Distribution.parameter_properties
method. experimental_default_event_space_bijector
now accepts additional arguments to pin some distribution parts.- Add
JointDistribution.experimental_pin
andJointDistributionPinned
. - Add
NegativeBinomial.experimental_from_mean_dispersion
method. - Add
tfp.experimental.distribute
, withDistributionStrategy
-aware distributions that support cross-device likelihood computations. HiddenMarkovModel
can now accept time varying observation distributions iftime_varying_observation_distribution
is set.Beta
,Binomial
, andNegativeBinomial
CDF no longer returns nan outside the support.- Remove the "dynamic graph" code path from the Mixture sampler. (
Mixture
now ignores theuse_static_graph
parameter.) Mixture
now computes standard deviations more accurately and robustly.- Fix incorrect
nan
samples generated by several distributions. - Fix KL divergence between
Categorical
distributions when logits contain -inf. - Implement
Bernoulli.cdf
. - Add a
log_rate
parameter totfd.Gamma
. - Add option for parallel filtering and sampling to
LinearGaussianStateSpaceModel
.
MCMC:
- Add
tfp.experimental.mcmc.ProgressBarReducer
. - Update
experimental.mcmc.sample_sequential_monte_carlo
to use new MCMC stateless kernel API. - Add an experimental streaming MCMC framework that supports computing statistics over a (batch of) Markov chain(s) without materializing the samples. Statistics supported (mostly on arbitrary functions of the model variables): mean, (co)variance, central moments of arbitrary rank, and the potential scale reduction factor (R-hat). Also support selectively tracing history of some but not all statistics or model variables. Add algorithms for running mean, variance, covariance, arbitrary higher central moments, and potential scale reduction factor (R-hat) to
tfp.experimental.stats
. - untempered_log_prob_fn added as init kwarg to ReplicaExchangeMC Kernel.
- Add experimental support for mass matrix preconditioning in Hamiltonian Monte Carlo.
- Add ability to temper part of the log prob in ReplicaExchangeMC.
tfp.experimental.mcmc.{sample_fold,sample_chain}
support warm restart.- even_odd_swap exchange function added to replica_exchange_mc.
- Samples from ReplicaExchangeMC can now have a per-replica initial state.
- Add omitted n/(n-1) term to
tfp.mcmc.potential_scale_reduction_factor
. - Add
KernelBuilder
andKernelOutputs
to experimental. - Allow tfp.mcmc.SimpleStepSizeAdaptation and DualAveragingStepSizeAdaptation to take a custom reduction function.
- Replace
make_innermost_getter
et al. withtfp.experimental.unnest
utilities.
VI:
Math + Stats:
- Add
tfp.math.bessel_ive
,tfp.math.bessel_kve
,tfp.math.log_bessel_ive
. - Add optional
weights
totfp.stats.histogram
. - Add
tfp.math.erfcinv
. - Add
tfp.math.reduce_log_harmonic_mean_exp
.
Other:
- Add
tfp.math.psd_kernels.GeneralizedMaternKernel
(generalizesMaternOneHalf
,MaternThreeHalves
andMaternFiveHalves
). - Add
tfp.math.psd_kernels.Parabolic
. - Add
tfp.experimental.unnest
utilities for accessing nested attributes. - Enable pytree flattening for TFP distributions in JAX
- More careful handling of nan and +-inf in {L-,}BFGS.
- Remove Edward2 from TFP. Edward2 is now in its own repo at https://github.com/google/edward2 .
- Support vector-valued offsets in
sts.Sum
. - Make DeferredTensor actually defer compu...
TensorFlow Probability 0.12.0
This is the 0.12.0 release of TensorFlow Probability. It is tested and stable against TensorFlow version 2.4.0.
For detailed change notes, please see the 0.12.1 release at https://github.com/tensorflow/probability/releases/tag/v0.12.1 .
TensorFlow Probability 0.12.0-rc4
This is RC4 of the TensorFlow Probability 0.12 release. It is tested against TensorFlow 2.4.0-rc4.