Skip to content

Releases: JaxGaussianProcesses/GPJax

v0.6.8

08 Aug 18:09
77aa81c
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.6.7...v0.6.8

v0.6.7

24 Jun 14:11
e98050e
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.6.4...v0.6.7

v0.6.4

12 Jun 17:18
6f7db6d
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.3...v0.6.4

v0.6.3

07 Jun 20:41
6408c68
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.2...v0.6.3

v0.6.2

31 May 18:36
558e797
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.6.1...v0.6.2

v0.6

11 May 21:43
d50be70
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.5.9...v0.6

v0.5.9

20 Jan 00:06
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.5.8...v0.5.9

v0.5.8

11 Jan 19:15
Compare
Choose a tag to compare

Address bug fix StochasticVI variational expectation. (@daniel-dodd).

v0.5.7

11 Jan 19:13
c0809b4
Compare
Choose a tag to compare

Overview:

  • Removed Chex as a direct GPJax dependancy (@daniel-dodd).
  • Depreciated parameter initialisation (@daniel-dodd).
  • Depreciated gpjax.parameters to JaxUtils.parameters (@thomaspinder).
  • Depreciated gpjax.config to JaxUtils.config (@daniel-dodd).
  • Deprecated gpjax.utils to JaxUtils.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).

⚠️ WARNING: Given 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

22 Dec 22:05
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.5.5...v0.5.6