Skip to content

Releases: cornellius-gp/gpytorch

v1.13

06 Sep 21:42
Compare
Choose a tag to compare

What's Changed

  • main and develop branches by @gpleiss in #2542
  • Include jaxtyping to allow for Tensor/LinearOperator typehints with sizes. by @gpleiss in #2543
  • fix: replace deprecated scipy.integrate.cumtrapz with cumulative_trapezoid by @natsukium in #2545
  • use common notation for normal distribution N(\mu, \sigma^2) by @partev in #2547
  • fix broken link in Simple_GP_Regression.ipynb by @partev in #2546
  • Deprecate last_dim_is_batch (bump PyTorch version to >= 2.0) by @gpleiss in #2549
  • Added ability for priors of transformed distributions to have their p… by @hvarfner in #2551
  • Avoid unnecessary memory allocation for covariance downdate in SGPR prediction strategy by @JonathanWenger in #2559
  • Fix VNNGP with batches by @LuhuanWu in #2375
  • fix a typo by @partev in #2570
  • fix a typo by @partev in #2571
  • DOC: improve the formatting in the documentation by @partev in #2578

New Contributors

Full Changelog: v1.12...v1.13

v1.12

27 Jun 15:53
6fff12d
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.11...v1.12

v1.11

02 Jun 22:04
f73fa7d
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.10...v1.11

v1.10

14 Apr 21:01
d230996
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.9.1...v1.10

v1.9.1 (bug fixes)

04 Jan 22:49
3595191
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.9.0...v1.9.1

v1.9.0 (LinearOperator)

30 Aug 14:11
fd99baf
Compare
Choose a tag to compare

Starting with this release, the LazyTensor functionality of GPyTorch has been pulled out into its own separate Python package, called linear_operator. Most users won't notice the difference (at the moment), but power users will notice a few changes.

If you have your own custom LazyTensor code, don't worry: this release is backwards compatible! However, you'll see a lot of annoying deprecation warnings 😄

LazyTensor -> LinearOperator

  • All gpytorch.lazy.*LazyTensor classes now live in the linear_operator repo, and are now called linear_operator.operator.*LinearOperator.
    • For example, gpytorch.lazy.DiagLazyTensor is now linear_operator.operators.DiagLinearOperator
    • The only major naming change: NonLazyTensor is now DenseLinearOperator
  • gpytorch.lazify and gpytorch.delazify are now linear_operator.to_linear_operator and linear_operator.to_dense, respectively.
  • The _quad_form_derivative method has been renamed to _bilinear_derivative (a more accurate name!)
  • LinearOperator method names now reflect their corresponding PyTorch names. This includes:
    • add_diag -> add_diagonal
    • diag -> diagonal
    • inv_matmul -> solve
    • symeig -> eigh and eigvalsh
  • LinearOperator now has the mT property

torch_function functionality

LinearOperators are now compatible with the torch api! For example, the following code works:

diag_linear_op = linear_operator.operators.DiagLinearOperator(torch.randn(10))
torch.matmul(diag_linear_op, torch.randn(10, 2))  # returns a torch.Tensor!

Other files that have moved:

  • gpytorch.functions - all of the core functions used by LazyTensors now live in the LinearOperator repo. This includes: diagonalization, dsmm, inv_quad, inv_quad_logdet, matmul, pivoted_cholesky, root_decomposition, solve (formally inv_matmul), and sqrt_inv_matmul
  • gpytorch.utils - a few have moved to the LinearOperator repo. This includes: broadcasting, cholesky, contour_intergral_quad, getitem, interpolation, lanczos, linear_cg, minres, permutation, stable_pinverse, qr, sparse, SothcasticLQ, and toeplitz.

Full Changelog: v1.8.1...v1.9.0

v1.8.1

08 Aug 21:24
Compare
Choose a tag to compare

Bug fixes

  • MultitaskMultivariateNormal: fix tensor reshape issue by @adamjstewart in #2081
  • Fix handling of prior terms in ExactMarginalLogLikelihood by @saitcakmak in #2039
  • Fix bug in preconditioned KISS-GP / Hadamard Multitask GPs by @gpleiss in #2090
  • Add constant_constraint to ConstantMean by @gpleiss in #2082

New Contributors

Full Changelog: v1.8.0...v1.8.1

v1.8.0 (Nearest Neighbor Variational Gaussian Processes)

19 Jul 13:11
Compare
Choose a tag to compare

Major Features

New Contributors

Full Changelog: v1.7.0...v1.8.0

v1.7.0 - gpytorch.metrics, variance reduction, variational fantasy models, improved gpytorch.priors

27 Jun 20:54
d4cccad
Compare
Choose a tag to compare

Important: This release requires Python 3.7 (up from 3.6) and PyTorch 1.10 (up from 1.9)

New Features

  • gpytorch.metrics module offers easy-to-use metrics for GP performance.(#1870) This includes:
    • gpytorch.metrics.mean_absolute_error
    • gpytorch.metrics.mean_squared_error
    • gpytorch.metrics.mean_standardized_log_loss
    • gpytorch.metrics.negative_log_predictive_density
    • gpytorch.metrics.quantile_coverage_error
  • Large scale inference (using matrix-multiplication techniques) now implements the variance reduction scheme described in Wenger et al., ICML 2022. (#1836)
    • This makes it possible to use LBFGS, or other line search based optimization techniques, with large scale (exact) GP hyperparameter optimization.
  • Variational GP models support online updates (i.e. “fantasizing new models). (#1874)
  • Improvements to gpytorch.priors
    • New HalfCauchyPrior (#1961)
    • LKJPrior now supports sampling (#1737)

Minor Features

  • Add LeaveOneOutPseudoLikelihood for hyperparameter optimization (#1989)
  • The PeriodicKernel now supports ARD lengthscales/periods (#1919)
  • LazyTensors (A) can now be matrix multiplied with tensors (B) from the left hand side (i.e. B x A) (#1932)
  • Maximum Cholesky retries can be controlled through a setting (#1861)
  • Kernels, means, and likelihoods can be pickled (#1876)
  • Minimum variance for FixedNoiseGaussianLikelihood can be set with a context manager (#2009)

Bug Fixes

  • Fix backpropagation issues with KeOps kernels (#1904)
  • Fix broadcasting issues with lazily evaluated kernels (#1971)
  • Fix batching issues with PolynomialKernel (#1977)
  • Fix issues with PeriodicKernel.diag() (#1919)
  • Add more informative error message when train targets and the train prior distribution mismatch (#1905)
  • Fix issues with priors on ConstantMean (#2042)

v.1.6.0 - Compatibility with PyTorch 1.9/1.10, multitask variational models, performance improvements

04 Dec 15:47
Compare
Choose a tag to compare

This release contains several bug fixes and performance improvements.

New Features

  • Variational multitask models can output a single task per input (rather than all tasks per input) (#1769)

Small fixes

  • LazyTensor#to method more closely matches the torch Tensor API (#1746)
  • Add type hints and exceptions to kernels to improve usability (#1802)

Performance

  • Improve the speed of fantasy models (#1752)
  • Improve the speed of solves and log determinants with KroneckerProductLazyTensor (#1786)
  • Prevent explicit kernel evaluation when expanding a LazyTensor kernel (#1813)

Fixes

  • Fix indexing bugs with kernels (#1802, #1819, #1828)
  • Fix cholesky bugs on CUDA (#1848)
  • Remove lines of code that generate warnings in PyTorch 1.9 (#1835)