Gpflow

Latest version: v2.9.2

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 5

2.6.0

The major theme for this release is heteroskedastic likelihoods. Changes have unfortunately caused
some breaking changes, but makes it much easier to use heteroskedastic likelihoods, either by
plugging together built-in GPflow classes, or when writing your own. See our
[updated notebook](https://gpflow.github.io/GPflow/2.6.0/notebooks/advanced/varying_noise.html), for
examples on how to use this.

Breaking Changes

* All likelihood methods now take an extra `X` argument. If you have written custom likelihoods or
you have custom code calling likelihoods directly you will need to add this extra argument.
* On the `CGLB` model the `xnew` parameters has changed name to `Xnew`, to be consistent with the
other models.
* On the `GPLVM` model the variance returned by `predict_f` with `full_cov=True` has changed shape
from `[batch..., N, N, P]` to `[batch..., P, N, N]` to be consistent with the other models.
* `gpflow.likelihoods.Gaussian.DEFAULT_VARIANCE_LOWER_BOUND` has been replaced with
`gpflow.likelihoods.scalar_continuous.DEFAULT_LOWER_BOUND`.
* Change to `InducingVariables` API. `InducingVariables` must now have a `shape` property.
* `gpflow.experimental.check_shapes.get_shape.register` has been replaced with
`gpflow.experimental.check_shapes.register_get_shape`.
* `check_shapes` will no longer automatically wrap shape checking in
`tf.compat.v1.flags.tf_decorator.make_decorator`. This is likely to affect you if you use
`check_shapes` with custom Keras models. If you require the decorator you can manually enable it
with `check_shapes(..., tf_decorator=True)`.

Known Caveats

* Shape checking is now, by default, disabled within `tf.function`. Use `set_enable_check_shapes` to
change this behaviour. See the
[API documentation](https://gpflow.github.io/GPflow/2.6.0/api/gpflow/experimental/check_shapes/index.html#speed-and-interactions-with-tf-function)
for more details.

Major Features and Improvements

* Improved handling of variable noise
- All likelihood methods now take an `X` argument, allowing you to easily implement
heteroskedastic likelihoods.
- The `Gaussian` likelihood can now be parametrized by either a `variance` or a `scale`
- Some existing likelihoods can now take a function (of X) instead of a parameter, allowing them
to become heteroskedastic. The parameters are:
- `Gaussian` `variance`
- `Gaussian` `scale`
- `StudentT` `scale`
- `Gamma` `shape`
- `Beta` `scale`
- The `GPR` and `SGPR` can now be configured with a custom Gaussian likelihood, allowing you to
make them heteroskedastic.
- See the updated
[notebook](https://gpflow.github.io/GPflow/2.6.0/notebooks/advanced/varying_noise.html).
- `gpflow.mean_functions` has been renamed `gpflow.functions`, but with an alias, to avoid
breaking changes.
* `gpflow.experimental.check_shapes`
- Can now be in three different states - ENABLED, EAGER_MODE_ONLY, and DISABLE.
The default is EAGER_MODE_ONLY, which only performs shape checks when the code is not compiled.
Compiling the shape checking code is a major bottleneck and this provides a significant speed-up
for performance sensitive parts of the code.
- Now supports multiple variable-rank dimensions at the same time, e.g. `cov: [n..., n...]`.
- Now supports single broadcast dimensions to have size 0 or 1, instead of only 1.
- Now supports variable-rank dimensions to be broadcast, even if they're not leading.
- Now supports `is None` and `is not None` as checks for conditional shapes.
- Now uses custom function `register_get_shape` instead of `get_shape.register`, for better
compatibility with TensorFlow.
- Now supports checking the shapes of `InducingVariable`s.
- Now adds documentation to function arguments that has declared shapes, but no other
documentation.
- All of GPflow is now consistently shape-checked.
* All built-in kernels now consistently support broadcasting.

Bug Fixes and Other Changes

* Tested with TensorFlow 2.10.
* Add support for Apple Silicon Macs (`arm64`) via the `tensorflow-macos` dependency. (1850)
* New implementation of GPR and SGPR posterior objects. This primarily improves numerical stability.
(1960)
- For the GPR this is also a speed improvement when using a GPU.
- For the SGPR this is a mixed bag, performance-wise.
* Improved checking and error reporting for the models than do not support `full_cov` and
`full_output_cov`.
* Documentation improvements:
- Improved MCMC notebook.
- Deleted notebooks that had no contents.
- Fixed some broken formatting.

Thanks to our Contributors

This release contains contributions from:

jesnie, corwinpro, st--, vdutor

2.5.2

This release fixes a performance regression introduced in `2.5.0`. `2.5.0` used features of Python
that `tensorfow < 2.9.0` do not know how to compile, which negatively impacted performance.

Bug Fixes and Other Changes

* Fixed some bugs that prevented TensorFlow compilation and had negative performance impact. (1882)
* Various improvements to documentation. (1875, 1866, 1877, 1879)

Thanks to our Contributors

This release contains contributions from:

jesnie

2.5.1

Fix problem with release process of 2.5.0.

Bug Fixes and Other Changes

* Fix bug in release process.

Thanks to our Contributors

This release contains contributions from:

jesnie

2.5.0

The focus of this release has mostly been bumping the minimally supported versions of Python and
TensorFlow; and development of `gpflow.experimental.check_shapes`.

Breaking Changes

* Dropped support for Python 3.6. New minimum version is 3.7. (1803, 1859)
* Dropped support for TensorFlow 2.2 and 2.3. New minimum version is 2.4. (1803)
* Removed sub-package `gpflow.utilities.utilities`. It was scheduled for deletion in `2.3.0`.
Use `gpflow.utilities` instead. (1804)
* Removed method `Likelihood.predict_density`, which has been deprecated since March 24, 2020.
(1804)
* Removed property `ScalarLikelihood.num_gauss_hermite_points`, which has been deprecated since
September 30, 2020. (1804)

Known Caveats

* Further improvements to type hints - this may reveal new problems in your code-base if
you use a type checker, such as `mypy`. (1795, 1799, 1802, 1812, 1814, 1816)

Major Features and Improvements

* Significant work on `gpflow.experimental.check_shapes`.

- Support anonymous dimensions. (1796)
- Add a hook to let the user register shapes for custom types. (1798)
- Support `Optional` values. (1797)
- Make it configurable. (1810)
- Add accesors for setting/getting previously applied checks. (1815)
- Much improved error messages. (1822)
- Add support for user notes on shapes. (1836)
- Support checking all elements of collections. (1840)
- Enable stand-alone shape checking, without using a decorator. (1845)
- Support for broadcasts. (1849)
- Add support for checking the shapes of intermediate computations. (1853)
- Support conditional shapes. (1855)

* Significant speed-up of the GPR posterior objects. (1809, 1811)

* Significant improvements to documentation. Note the new home page:
https://gpflow.github.io/GPflow/index.html
(1828, 1829, 1830, 1831, 1833, 1841, 1842, 1856, 1857)

Bug Fixes and Other Changes

* Minor improvement to code clarity (variable scoping) in SVGP model. (1800)
* Improving mathematical formatting in docs (SGPR derivations). (1806)
* Allow anisotropic kernels to have negative length-scales. (1843)

Thanks to our Contributors

This release contains contributions from:

ltiao, uri.granta, frgsimpson, st--, jesnie

2.4.0

This release mostly focuses on make posterior objects useful for Bayesian Optimisation.
It also adds a new `experimetal` sub-package, with a tool for annotating tensor shapes.


Breaking Changes

* Slight change to the API of custom posterior objects.
`gpflow.posteriors.AbstractPosterior._precompute` no longer must return an `alpha` and an
`Qinv` - instead it returns any arbitrary tuple of `PrecomputedValue`s.
Correspondingly `gpflow.posteriors.AbstractPosterior._conditional_with_precompute` should no
longer try to access `self.alpha` and `self.Qinv`, but instead is passed the tuple of tensors
returned by `_precompute`, as a parameter. (1763, 1767)

* Slight change to the API of inducing points.
You should no longer override `gpflow.inducing_variables.InducingVariables.__len__`. Override
`gpflow.inducing_variables.InducingVariables.num_inducing` instead. `num_inducing` should return a
`tf.Tensor` which is consistent with previous behaviour, although the type previously was
annotated as `int`. `__len__` has been deprecated. (1766, 1792)

Known Caveats

* Type hints have been added in several places - this may reveal new problems in your code-base if
you use a type checker, such as `mypy`.
(1766, 1769, 1771, 1773, 1775, 1777, 1780, 1783, 1787, 1789)

Major Features and Improvements

* Add new posterior class to enable faster predictions from the VGP model. (1761)
* VGP class bug-fixed to work with variable-sized data. Note you can use
`gpflow.models.vgp.update_vgp_data` to ensure variational parameters are updated sanely. (1774).
* All posterior classes bug-fixed to work with variable data sizes, for Bayesian Optimisation.
(1767)

* Added `experimental` sub-package for features that are still under developmet.
* Added `gpflow.experimental.check_shapes` for checking tensor shapes.
(1760, 1768, 1782, 1785, 1788)

Bug Fixes and Other Changes

* Make `dataclasses` dependency conditional at install time. (1759)
* Simplify calculations of some `predict_f`. (1755)

Thanks to our Contributors

This release contains contributions from:

jesnie, tmct, joacorapela

2.3.1

This is a bug-fix release, primarily for the GPR posterior object.

Bug Fixes and Other Changes

* GPR posterior
* Fix the calculation in the GPR posterior object (1734).
* Fixes leading dimension issues with `GPRPosterior._conditional_with_precompute()` (1747).

* Make `gpflow.optimizers.Scipy` able to handle unused / unconnected variables. (1745).

* Build
* Fixed broken CircleCi build (1738).
* Update CircleCi build to use next-gen Docker images (1740).
* Fixed broken triggering of docs generation (1744).
* Make all slow tests depend on fast tests (1743).
* Make `make dev-install` also install the test requirements (1737).

* Documentation
* Fixed broken link in `README.md` (1736).
* Fix broken build of `cglb.ipynb` (1742).
* Add explanation of how to run notebooks locally (1729).
* Fix formatting in notebook on Heteroskedastic Likelihood (1727).
* Fix broken link in introduction (1718).

* Test suite
* Amends `test_gpr_posterior.py` so it will cover leading dimension uses.



Thanks to our Contributors

This release contains contributions from:

st--, jesnie, johnamcleod, Andrew878

Page 3 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.