Releases: thomaspinder/GPJax
v0.6.2
What's Changed
- 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
New Contributors
- @ingmarschuster made their first contribution in #279
Full Changelog: v0.6.1...v0.6.2
v0.6
What's Changed
- Rectify predictive interval in
examples/regression.pct.pyby @patel-zeel in #186 - typo fixes by @st-- in #187
- pyspelling by @st-- in #188
- Correct key handling in examples by @frazane in #191
- Jaxkern merge by @thomaspinder in #197
- Jaxlinop merge by @thomaspinder in #196
- Docs pytree by @thomaspinder in #211
- Cleanup by @thomaspinder in #205
- Update README by @thomaspinder in #220
- Rff sampler by @henrymoss in #195
- Add minimal pytree checks for linops. (Better testing needed in future). by @daniel-dodd in #222
- Add pytree tests for gps (tests still need improving). by @daniel-dodd in #223
- Add minimal pytree tests for variational (tests need improving). by @daniel-dodd in #224
- Add tests for kernels and likelihoods by @frazane in #225
- Add save/load fns by @thomaspinder in #228
- Spatial modelling example with decoupled sampling by @frazane in #234
- Introduce beartype & fix types by @st-- in #230
pre-commitsetup & code changes by @st-- in #241- Poisson likelihood by @frazane in #231
- Tidy up RFF and extra tests/formatting by @henrymoss in #243
- Arccosine kernel by @henrymoss in #245
- Add static field to base, update tests to run on 3.11, fix 3.11 compatibility by @daniel-dodd in #246
- Revamp docs by @thomaspinder in #233
- V0.6 by @thomaspinder in #212
New Contributors
- @henrymoss made their first contribution in #195
Full Changelog: v0.5.9...v0.6
v0.5.9
v0.5.8
Address bug fix StochasticVI variational expectation. (@daniel-dodd).
v0.5.7
Overview:
- Removed
Chexas a direct GPJax dependancy (@daniel-dodd). - Depreciated parameter initialisation (@daniel-dodd).
- Depreciated
gpjax.parameterstoJaxUtils.parameters(@thomaspinder). - Depreciated
gpjax.configtoJaxUtils.config(@daniel-dodd). - Deprecated
gpjax.utilstoJaxUtils.dict(@daniel-dodd). - Addressed issues with documentation build and checks for new PRs (@thomaspinder).
Remove Chex import and dataclasses
Issue: #157
Fixed: via #176, @daniel-dodd
Details:
Chex has been removed in as a direct dependancy of GPJax.
Note Distrax depends on Chex, so you still need the relevant version of Chex installed to use GPJax.
This means it is recommend that users no longer use Chex's @dataclass decorator, to define objects. Instead, we advise users inherit from abstract types provided in GPJax (e.g., AbstractGP) or should inherit the JaxUtils.PyTree module, to ensure their object is registered as a JAX PyTree.
This decision to remove Chex was given to provide great flexibility of defining new classes, and mitigating pain points with class inheritance issues (resorting use to use mixin classes).
GPJax's objects are no longer Chex.dataclasses note the keyword only argument convention for initialising objects has been removed - users should be careful on the order of their inputs.
Parameter initialisation:
Issue: #172
Fixed: #178, @daniel-dodd
Details:
To initialise default parameters you should call/define init_param instead of _initialise_params. The latter is being depreciated and will be removed in v0.6.
Example (1):
import jaxkern as jk
import gpjax as gpx
import jax.random as jr
prior = gpx.Prior(kernel = jk.RBF())
# OLD DO NOT USE:
key = jr.PRNGKey(123)
params = prior._initialise_params(key)
# NEW WAY:
key = jr.PRNGKey(123)
params = prior.init_params(key)Example (2):
from gpjax.likelihoods import AbstractLikelihood
from jax.random import KeyArray
from typing import Dict
class Poisson(AbstractLikelihood):
# Define __init__, ect as usual.
def __init__(self, ...) -> None:
....
# Define your default params via the `init_params` method instead of the old `_initialise_params`
def init_params(self, key: KeyArray) -> Dict:
....Documentation fix build and add checks
Issue: #170, #169
Fixed: #171 (@thomaspinder).
Details:
The docs now builds and checks are in place to ensure successful builds on new PRs made to the master branch.
Note the docs are currently built using a GitHub workflow, while unit tests are run via CircleCI workflows.
V0.5.6
What's Changed
- Stabilize covariance learning with
FillScaleTriLand update config behaviour by @patel-zeel in #163 - Circleci by @thomaspinder in #168
- Versioneer by @thomaspinder in #166
- Address Jax/Jaxlib
v0.4.xcompatibility, incorporate CircleCI testing workflows, incorporate versioneer. by @thomaspinder in #164
New Contributors
- @patel-zeel made their first contribution in #163
Full Changelog: v0.5.5...v0.5.6
v0.5.5
Depreciate gpjax.Dataset and gpjax.kernels. These objects will be removed in v0.6.0. @thomaspinder
v0.5.4
Implementation of new kernels and a backend move to using a PyTree in place of a Chex dataclass.
What's Changed
- More kernels by @thomaspinder in #148
Full Changelog: v0.5.2...v0.5.4
v0.5.2
What's Changed
- Fix typos in introduction doc. by @jondeaton in #151
- Change MLL to probability transition kernel only. by @daniel-dodd in #153
- Incorporate JaxLinOp with GPJax by @daniel-dodd in #154
New Contributors
- @jondeaton made their first contribution in #151
Full Changelog: v0.5.1...v0.5.2
v0.5.1
Fix stability in Matérn kernels.