diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bfd4cc0..b2b9f090 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,19 @@ Changes ------- -Version 0.15.0 - unreleased +Version 0.16.0 - unreleased =========================== +Version 0.15.0 - 02/01/2023 +=========================== + +* `gp`: Implement sparse gaussian process methods (cf. `SparseGaussianProcess`) +* Python binding: `SparseGpMix`, see doc/tutorial +* GP/SGP API + * hyperparameter tuning : initial theta guess and bounds can be specified (`theta_init`, `theta_bounds`) + * `n_start` controls the number of optimization multistart +* In GP/SGP `rayon` is used to make parallel optimization multistart + Version 0.14.0 - 13/12/2023 =========================== diff --git a/Cargo.toml b/Cargo.toml index 386c71ce..18eeba24 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "egobox" -version = "0.14.0" +version = "0.15.0" authors = ["Rémi Lafage "] edition = "2021" description = "A toolbox for efficient global optimization" @@ -30,10 +30,10 @@ persistent-moe = ["egobox-moe/persistent"] blas = ["ndarray/blas", "egobox-gp/blas", "egobox-moe/blas", "egobox-ego/blas"] [dependencies] -egobox-doe = { version = "0.14.0", path = "./doe" } -egobox-gp = { version = "0.14.0", path = "./gp" } -egobox-moe = { version = "0.14.0", path = "./moe", features = ["persistent"] } -egobox-ego = { version = "0.14.0", path = "./ego" } +egobox-doe = { version = "0.15.0", path = "./doe" } +egobox-gp = { version = "0.15.0", path = "./gp" } +egobox-moe = { version = "0.15.0", path = "./moe", features = ["persistent"] } +egobox-ego = { version = "0.15.0", path = "./ego" } linfa = { version = "0.7", default-features = false } diff --git a/README.md b/README.md index 31297c86..014264c9 100644 --- a/README.md +++ b/README.md @@ -40,10 +40,10 @@ Depending on the sub-packages you want to use, you have to add following declara ```text [dependencies] -egobox-doe = { version = "0.14.0" } -egobox-gp = { version = "0.14.0" } -egobox-moe = { version = "0.14.0" } -egobox-ego = { version = "0.14.0" } +egobox-doe = { version = "0.15.0" } +egobox-gp = { version = "0.15.0" } +egobox-moe = { version = "0.15.0" } +egobox-ego = { version = "0.15.0" } ``` ### Features @@ -52,10 +52,10 @@ The table below presents the various features available depending on the subcrat | Name | doe | gp | moe | ego | | :----------- | :--- | :--- | :--- | :--- | -| serializable | Y | Y | Y | | -| persistent | | | Y | | -| blas | | Y | Y | Y | -| nlopt | | Y | | Y | +| serializable | ✔️ | ✔️ | ✔️ | | +| persistent | | | ✔️ | | +| blas | | ✔️ | ✔️ | ✔️ | +| nlopt | | ✔️ | | ✔️ | #### serializable When selected, the serialization with [serde crate](https://serde.rs/) is enabled. @@ -97,7 +97,7 @@ Otherwise, you can choose an external BLAS/LAPACK backend available through the Thus, for instance, to use `gp` with the Intel MKL BLAS/LAPACK backend, you could specify in your `Cargo.toml` the following features: ```text [dependencies] -egobox-gp = { version = "0.14.0", features = ["blas", "linfa/intel-mkl-static"] } +egobox-gp = { version = "0.15.0", features = ["blas", "linfa/intel-mkl-static"] } ``` or you could run the `gp` example as follows: ``` bash diff --git a/doc/README.md b/doc/README.md index cff865b9..91115170 100644 --- a/doc/README.md +++ b/doc/README.md @@ -9,6 +9,10 @@ [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/relf/egobox/blob/master/doc/Gpx_Tutorial.ipynb) +## Gaussian process surrogates: _SparseGpx_ + +[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/relf/egobox/blob/master/doc/SparseGpx_Tutorial.ipynb) + ## _Gpx_ on Mauna Loa CO2 data [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/relf/egobox/blob/master/doc/Gpx_MaunaLoaCO2.ipynb) diff --git a/doe/Cargo.toml b/doe/Cargo.toml index f5128580..f1e93ec4 100644 --- a/doe/Cargo.toml +++ b/doe/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "egobox-doe" -version = "0.14.0" +version = "0.15.0" authors = ["Rémi Lafage "] edition = "2021" description = "A library for design of experiments" diff --git a/ego/Cargo.toml b/ego/Cargo.toml index 5c883543..0d93759d 100644 --- a/ego/Cargo.toml +++ b/ego/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "egobox-ego" -version = "0.14.0" +version = "0.15.0" authors = ["Rémi Lafage "] edition = "2021" description = "A library for efficient global optimization" @@ -15,11 +15,11 @@ default = [] blas = ["ndarray-linalg", "linfa/ndarray-linalg", "linfa-pls/blas"] [dependencies] -egobox-doe = { version = "0.14.0", path = "../doe", features = [ +egobox-doe = { version = "0.15.0", path = "../doe", features = [ "serializable", ] } -egobox-gp = { version = "0.14.0", path = "../gp", features = ["serializable"] } -egobox-moe = { version = "0.14.0", path = "../moe", features = [ +egobox-gp = { version = "0.15.0", path = "../gp", features = ["serializable"] } +egobox-moe = { version = "0.15.0", path = "../moe", features = [ "serializable", ] } diff --git a/gp/Cargo.toml b/gp/Cargo.toml index 21d7294f..102271f6 100644 --- a/gp/Cargo.toml +++ b/gp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "egobox-gp" -version = "0.14.0" +version = "0.15.0" authors = ["Rémi Lafage "] edition = "2021" description = "A library for gaussian process modeling" @@ -18,7 +18,7 @@ persistent = ["serializable", "serde_json"] blas = ["ndarray-linalg", "linfa/ndarray-linalg", "linfa-pls/blas"] [dependencies] -egobox-doe = { version = "0.14.0", path = "../doe" } +egobox-doe = { version = "0.15.0", path = "../doe" } linfa = { version = "0.7", default-features = false } linfa-pls = { version = "0.7", default-features = false } diff --git a/moe/Cargo.toml b/moe/Cargo.toml index 1a9aea82..b6c111b2 100644 --- a/moe/Cargo.toml +++ b/moe/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "egobox-moe" -version = "0.14.0" +version = "0.15.0" authors = ["Rémi Lafage "] edition = "2021" description = "A library for mixture of expert gaussian processes" @@ -29,8 +29,8 @@ serializable = [ blas = ["ndarray-linalg", "linfa/ndarray-linalg", "linfa-pls/blas"] [dependencies] -egobox-doe = { version = "0.14.0", path = "../doe" } -egobox-gp = { version = "0.14.0", path = "../gp" } +egobox-doe = { version = "0.15.0", path = "../doe" } +egobox-gp = { version = "0.15.0", path = "../gp" } linfa = { version = "0.7", default-features = false } linfa-clustering = { version = "0.7", default-features = false } diff --git a/pyproject.toml b/pyproject.toml index 7960c272..15190f93 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,7 @@ python-source = "python" [tool.poetry] name = "egobox" -version = "0.14.0" +version = "0.15.0" description = "Python binding for egobox EGO optimizer written in Rust" authors = ["Rémi Lafage "] packages = [{ include = "egobox", from = "python" }]