Releases: JaxGaussianProcesses/GPJax
v0.9.3
What's Changed
- optional solver_algorithm parameter to sample_approx by @theorashid in #478
- Fix broken examples by @thomaspinder in #480
- Fix callbacks by @stefanocortinovis in #483
- Fix
Static
check inGaussian
likelihood by @stefanocortinovis in #484 - Allow to pass trainable inducing inputs to AbstractVariationalGaussian by @stefanocortinovis in #485
- Swap collapsed_vi.md and uncollapsed_vi.md by @stefanocortinovis in #486
- Bump project version to 0.9.3 by @stefanocortinovis in #487
New Contributors
- @stefanocortinovis made their first contribution in #483
Full Changelog: v0.9.1...v0.9.3
v0.9.1
What's Changed
- Add workflow dispatch by @thomaspinder in #466
- Add Hatch by @thomaspinder in #468
- Add workflow by @thomaspinder in #470
- Remove
progress_bar.py
by @daniel-dodd in #472 - Remove redundant pyspelling files by @daniel-dodd in #473
Full Changelog: v0.9.0...v0.9.1
v0.9.0
Key Changes
In v0.9.0, the backend of GPJax has migrated to the NNX module of Flax (h/t @cgarciae) . This allows us to assign structure to our parameters, hook into Flax's ecosystem, and simplify our underlying code. From a frontend perspective, you may now assign a type to your parameters e.g., PositiveReal
and easily invoke the state of your GP.
State
For any component of GPJax, such as a kernel, mean function, prior or posterior GP.etc, you may now realise the state of the component using nnx.Split
. For example, the state of a Matérn kernel would be realised by
kernel = gpx.kernels.Matern32()
_, params = nnx.split(kernel, gpx.parameters.Parameter)
This allows users to have low-level control over the exact operations that are made on the parameters. We detail this fully in the Parameters section of our Model Guide notebook.
Parameters
We now recognise the support that a parameter. For example, strictly positive parameters such as the lengthscale or variance are instantiated via the PositiveReal
parameter. Meanwhile, parameters that are constrained to be lower triangular matrix are instantiated through the LowerTriangular
parameter.
What's Changed
- Point CoC breaches to our contact form. by @thomaspinder in #451
- Quick fix to stop automatic switch to CG by @henrymoss in #454
- Fix some type annotations causing failing tests by @stephen-huan in #456
- Feature: Adds probability of improvement as an acquisition function by @miguelgondu in #458
- Add expected improvement utility function by @Thomas-Christie in #460
- feat(gpjax/kernels/base.py): add diagonal by @stephen-huan in #429
- Flax/nnx backend by @frazane in #440
New Contributors
- @stephen-huan made their first contribution in #456
- @miguelgondu made their first contribution in #458
Full Changelog: v0.8.2...v0.9.0
v0.8.2
What's Changed
- add missing jaxopt dependency by @st-- in #445
- Bump to v0.8.2 by @thomaspinder in #448
Full Changelog: v0.8.1...v0.8.2
v0.8.1
What's Changed
- Fix broken docs by @thomaspinder in #424
- Add generic typing information for gps objects by @frazane in #425
- Perhaps finally a decent LBFGS? by @henrymoss in #426
- Fix BO notebook by @Thomas-Christie in #430
- Clean up intro to kernels notebook by @st-- in #432
- Update intro_to_gps.py by @neel-maniar in #433
- Minor typos in mathematical definitions in intro_to_gps.py by @neel-maniar in #434
- Minor typo in analytic expression for Bayesian evidence in intro_to_g… by @neel-maniar in #438
- Fixed mutable default value error in VelocityKernel and HelmholtzKernel dataclasses in python 3.11 by @wejpurvis in #439
- Update dependencies by @Thomas-Christie in #442
- Bump version by @thomaspinder in #443
New Contributors
- @neel-maniar made their first contribution in #433
- @wejpurvis made their first contribution in #439
Full Changelog: v0.8.0...v0.8.1
v0.8.0
Breaking changes
- Dropped data masking, multi-output kernels
- Namespace paths have changed to full-form i.e.,
gpx.Prior
->gpx.gps.Prior
What's Changed
- Add search space class for BayesOpt by @Thomas-Christie in #355
- Add classes for forming acquisition functions by @Thomas-Christie in #359
- Add classes for handling posteriors during the decision making loop by @Thomas-Christie in #362
- Add logic for running a decision making loop by @Thomas-Christie in #365
- Prepare for future batching by @Thomas-Christie in #385
- Add decision making functionality by @Thomas-Christie in #386
- formatting and spelling by @ivanshalashilin in #387
- Multi output by @ingmarschuster in #360
- Quick fix to remove duplicate file by @henrymoss in #395
- Add governance doc by @thomaspinder in #398
- Fix obs_noise confusion by @henrymoss in #400
- bump cola to v0.0.5 by @daniel-dodd in #405
- Jaxopt 2 by @henrymoss in #402
- fix config import by @henrymoss in #410
- LOOCV objective by @henrymoss in #412
- Fix AnalyticalGuassianIntegrator by @meta-inf in #414
- Fix bug and add test. by @daniel-dodd in #416
- Fix typo in CollapsedELBO by @meta-inf in #417
- Bump version by @thomaspinder in #411
- Cleanup src by @thomaspinder in #419
- Update README.md by @daniel-dodd in #418
- Update typing.py by @daniel-dodd in #423
- Namespace cleanup by @thomaspinder in #408
New Contributors
Full Changelog: v0.7.0...v0.8.0
v0.7.3
What's Changed
- Jaxopt 2 by @henrymoss in #402
- fix config import by @henrymoss in #410
- LOOCV objective by @henrymoss in #412
- Fix AnalyticalGuassianIntegrator by @meta-inf in #414
- Fix bug and add test. by @daniel-dodd in #416
- Fix typo in CollapsedELBO by @meta-inf in #417
- Bump version by @thomaspinder in #411
New Contributors
Full Changelog: v0.7.2...0.7.3
v0.7.2
v0.7.1
What's Changed
- Add search space class for BayesOpt by @Thomas-Christie in #355
- Add classes for forming acquisition functions by @Thomas-Christie in #359
- Add classes for handling posteriors during the decision making loop by @Thomas-Christie in #362
- Add logic for running a decision making loop by @Thomas-Christie in #365
- Prepare for future batching by @Thomas-Christie in #385
- Add decision making functionality by @Thomas-Christie in #386
- formatting and spelling by @ivanshalashilin in #387
- Multi output by @ingmarschuster in #360
- Quick fix to remove duplicate file by @henrymoss in #395
- Add governance doc by @thomaspinder in #398
- Fix obs_noise confusion by @henrymoss in #400
Full Changelog: v0.7.0...v0.7.1
v0.7.0
What's Changed
- Benchmarking by @thomaspinder in #319
- CoLA integration by @daniel-dodd in #370
- Vector Fields Notebook by @ivanshalashilin in #341
New Contributors
- @ivanshalashilin made their first contribution in #341
Full Changelog: v0.6.9...v0.7.0
What's Changed
- Update README.md by @thomaspinder in #250
- Bump linkify-it-py from 2.0.0 to 2.0.2 by @dependabot in #251
- Bump JamesIves/github-pages-deploy-action from 4.1.6 to 4.4.1 by @dependabot in #249
- Bump actions/checkout from 2.3.1 to 3.5.2 by @dependabot in #248
- Bump actions/setup-node from 1 to 3 by @dependabot in #247
- Fix latex rending + minor typos. by @daniel-dodd in #257
- Update gpu guide to point to JAX installation guide. by @daniel-dodd in #258
- Tiny doc improvement by @henrymoss in #264
- Autogen code by @thomaspinder in #265
- Update CI by @thomaspinder in #266
- Add sharp bits doc by @thomaspinder in #267
- Add isotropy test by @thomaspinder in #271
- Update sharp_bits.md by @st-- in #275
- Fix doc build by @thomaspinder in #281
- Bugfix powered_exponential.py by @ingmarschuster in #279
- Static typing fixes by @frazane in #285
- WIP by @henrymoss in #289
- Abstract integrator by @thomaspinder in #283
- Add cite functionality by @thomaspinder in #300
- Add integrator/likelihoods doc by @thomaspinder in #296
- Smoke testing by @thomaspinder in #307
- Docstring tester by @thomaspinder in #317
- changed schedule peak_value to 1e-2 for the svgp notebook so it does not give nans by @stefanosele in #324
- Bugfix in BasisFunctionComputation by @frazane in #326
- Decouple kernel computation class initialisation from kernel by @frazane in #328
- Update contribution documentation by @Thomas-Christie in #329
- Add introductory kernel notebook and change style file path in notebooks by @Thomas-Christie in #331
- Add BO notebook by @Thomas-Christie in #335
- Fixed Polar GP example by @trsav in #339
- Merge in main by @ingmarschuster in #346
- Precision check feature by @trsav in #347
- Fix objectives tests by @Thomas-Christie in #348
- Categorical kernel by @ingmarschuster in #345
- Clarify docs by @thomaspinder in #353
- Support for missing values using masked dataset by @frazane in #340
- Bump
jax
andjaxlib
versions by @Thomas-Christie in #366 - Fix bug in zero mean function and add test by @Thomas-Christie in #358
- Benchmarking by @thomaspinder in #319
- CoLA integration by @daniel-dodd in #370
- Vector Fields Notebook by @ivanshalashilin in #341
New Contributors
- @dependabot made their first contribution in #251
- @stefanosele made their first contribution in #324
- @trsav made their first contribution in #339
- @ivanshalashilin made their first contribution in #341
Full Changelog: v0.6...v0.7.0