From dedf2f68f1372325f0dab9f719fef80d317fca5d Mon Sep 17 00:00:00 2001 From: BoTorch website deployment script Date: Fri, 24 Jan 2025 10:55:43 +0000 Subject: [PATCH] Update latest version of site --- .../api/_modules/botorch/models/gpytorch.html | 35 ++++++++++++++- .../botorch/models/gpytorch/index.html | 35 ++++++++++++++- .../botorch/models/transforms/input.html | 45 ++++++++++++++++--- .../models/transforms/input/index.html | 45 ++++++++++++++++--- v/latest/api/models.html | 4 +- v/latest/api/models/index.html | 4 +- v/latest/files/bo_with_warped_gp.ipynb | 44 +++++++++--------- v/latest/files/bo_with_warped_gp.py | 24 +++++----- v/latest/tutorials/bo_with_warped_gp.html | 35 ++++++++------- .../tutorials/bo_with_warped_gp/index.html | 35 ++++++++------- 10 files changed, 224 insertions(+), 82 deletions(-) diff --git a/v/latest/api/_modules/botorch/models/gpytorch.html b/v/latest/api/_modules/botorch/models/gpytorch.html index 40b9479462..7a79dc1a6f 100644 --- a/v/latest/api/_modules/botorch/models/gpytorch.html +++ b/v/latest/api/_modules/botorch/models/gpytorch.html @@ -770,6 +770,7 @@

Source code for botorch.models.gpytorch

                     interleaved=False,
                 )
             else:
+                mvns = self._broadcast_mvns(mvns=mvns)
                 mvn = (
                     mvns[0]
                     if len(mvns) == 1
@@ -791,7 +792,39 @@ 

Source code for botorch.models.gpytorch

 [docs]
     def condition_on_observations(self, X: Tensor, Y: Tensor, **kwargs: Any) -> Model:
         raise NotImplementedError()
-
+ + + def _broadcast_mvns(self, mvns: list[MultivariateNormal]) -> MultivariateNormal: + """Broadcasts the batch shapes of the given MultivariateNormals. + + The MVNs will have a batch shape of `input_batch_shape x model_batch_shape`. + If the model batch shapes are broadcastable, we will broadcast the mvns to + a batch shape of `input_batch_shape x self.batch_shape`. + + Args: + mvns: A list of MultivariateNormals. + + Returns: + A list of MultivariateNormals with broadcasted batch shapes. + """ + mvn_batch_shapes = {mvn.batch_shape for mvn in mvns} + if len(mvn_batch_shapes) == 1: + # All MVNs have the same batch shape. We can return as is. + return mvns + # This call will error out if they're not broadcastable. + # If they're broadcastable, it'll log a warning. + target_model_shape = self.batch_shape + max_batch = max(mvn_batch_shapes, key=len) + max_len = len(max_batch) + input_batch_len = max_len - len(target_model_shape) + for i in range(len(mvns)): # Loop over index since we modify contents. + while len(mvns[i].batch_shape) < max_len: + # MVN is missing batch dimensions. Unsqueeze as needed. + mvns[i] = mvns[i].unsqueeze(input_batch_len) + if mvns[i].batch_shape != max_batch: + # Expand to match the batch shapes. + mvns[i] = mvns[i].expand(max_batch) + return mvns diff --git a/v/latest/api/_modules/botorch/models/gpytorch/index.html b/v/latest/api/_modules/botorch/models/gpytorch/index.html index 40b9479462..7a79dc1a6f 100644 --- a/v/latest/api/_modules/botorch/models/gpytorch/index.html +++ b/v/latest/api/_modules/botorch/models/gpytorch/index.html @@ -770,6 +770,7 @@

Source code for botorch.models.gpytorch

                     interleaved=False,
                 )
             else:
+                mvns = self._broadcast_mvns(mvns=mvns)
                 mvn = (
                     mvns[0]
                     if len(mvns) == 1
@@ -791,7 +792,39 @@ 

Source code for botorch.models.gpytorch

 [docs]
     def condition_on_observations(self, X: Tensor, Y: Tensor, **kwargs: Any) -> Model:
         raise NotImplementedError()
-
+ + + def _broadcast_mvns(self, mvns: list[MultivariateNormal]) -> MultivariateNormal: + """Broadcasts the batch shapes of the given MultivariateNormals. + + The MVNs will have a batch shape of `input_batch_shape x model_batch_shape`. + If the model batch shapes are broadcastable, we will broadcast the mvns to + a batch shape of `input_batch_shape x self.batch_shape`. + + Args: + mvns: A list of MultivariateNormals. + + Returns: + A list of MultivariateNormals with broadcasted batch shapes. + """ + mvn_batch_shapes = {mvn.batch_shape for mvn in mvns} + if len(mvn_batch_shapes) == 1: + # All MVNs have the same batch shape. We can return as is. + return mvns + # This call will error out if they're not broadcastable. + # If they're broadcastable, it'll log a warning. + target_model_shape = self.batch_shape + max_batch = max(mvn_batch_shapes, key=len) + max_len = len(max_batch) + input_batch_len = max_len - len(target_model_shape) + for i in range(len(mvns)): # Loop over index since we modify contents. + while len(mvns[i].batch_shape) < max_len: + # MVN is missing batch dimensions. Unsqueeze as needed. + mvns[i] = mvns[i].unsqueeze(input_batch_len) + if mvns[i].batch_shape != max_batch: + # Expand to match the batch shapes. + mvns[i] = mvns[i].expand(max_batch) + return mvns diff --git a/v/latest/api/_modules/botorch/models/transforms/input.html b/v/latest/api/_modules/botorch/models/transforms/input.html index ce3fba0ba6..db56d076f5 100644 --- a/v/latest/api/_modules/botorch/models/transforms/input.html +++ b/v/latest/api/_modules/botorch/models/transforms/input.html @@ -1186,6 +1186,7 @@

Source code for botorch.models.transforms.input

< def __init__( self, + d: int, indices: list[int], transform_on_train: bool = True, transform_on_eval: bool = True, @@ -1195,6 +1196,7 @@

Source code for botorch.models.transforms.input

< concentration1_prior: Prior | None = None, concentration0_prior: Prior | None = None, batch_shape: torch.Size | None = None, + bounds: Tensor | None = None, ) -> None: r"""Initialize transform. @@ -1217,6 +1219,7 @@

Source code for botorch.models.transforms.input

< parameters for each batch of inputs. This should match the input batch shape of the model (i.e., `train_X.shape[:-2]`). NOTE: This is only supported for single-output models. + bounds: A `2 x d`-dim tensor of lower and upper bounds for the inputs. """ super().__init__() self.register_buffer("indices", torch.tensor(indices, dtype=torch.long)) @@ -1227,6 +1230,9 @@

Source code for botorch.models.transforms.input

< self.batch_shape = batch_shape or torch.Size([]) self._X_min = eps self._X_range = 1 - 2 * eps + self._normalize = Normalize( + d=d, indices=indices, bounds=bounds, batch_shape=self.batch_shape + ) if len(self.batch_shape) > 0: # Note: this follows the gpytorch shape convention for lengthscales # There is ongoing discussion about the extra `1`. @@ -1271,7 +1277,7 @@

Source code for botorch.models.transforms.input

< self.initialize(**{f"concentration{i}": value}) @subset_transform - def _transform(self, X: Tensor) -> Tensor: + def _warp_transform(self, X: Tensor) -> Tensor: r"""Warp the inputs through the Kumaraswamy CDF. Args: @@ -1280,10 +1286,9 @@

Source code for botorch.models.transforms.input

< it is broadcastable with self.batch_shape if self.batch_shape is set. Returns: - A `input_batch_shape x (batch_shape) x n x d`-dim tensor of transformed - inputs. + A `input_batch_shape x (batch_shape) x n x d`-dim tensor + of transformed inputs. """ - # normalize to [eps, 1-eps], IDEA: could use Normalize and ChainedTransform. return self._k.cdf( torch.clamp( X * self._X_range + self._X_min, @@ -1292,7 +1297,23 @@

Source code for botorch.models.transforms.input

< ) ) - @subset_transform + def _transform(self, X: Tensor) -> Tensor: + r"""Warp the inputs through the Kumaraswamy CDF. + + Args: + X: A `input_batch_shape x (batch_shape) x n x d`-dim tensor of inputs. + batch_shape here can either be self.batch_shape or 1's such that + it is broadcastable with self.batch_shape if self.batch_shape is set. + + Returns: + A `input_batch_shape x (batch_shape) x n x d`-dim tensor of transformed + inputs. + """ + # Normalize to unit cube + X = self._normalize(X=X) + # normalize to [eps, 1-eps], IDEA: could use Normalize and ChainedTransform. + return self._warp_transform(X=X) + def _untransform(self, X: Tensor) -> Tensor: r"""Warp the inputs through the Kumaraswamy inverse CDF. @@ -1309,6 +1330,20 @@

Source code for botorch.models.transforms.input

< "The right most batch dims of X must match self.batch_shape: " f"({self.batch_shape})." ) + untransformed_X = self._warp_untransform(X=X) + return self._normalize.untransform(X=untransformed_X) + + @subset_transform + def _warp_untransform(self, X: Tensor) -> Tensor: + r"""Warp the inputs through the Kumaraswamy inverse CDF. + + Args: + X: A `input_batch_shape x batch_shape x n x d`-dim tensor of inputs. + + Returns: + A `input_batch_shape x batch_shape x n x d`-dim tensor of transformed + inputs. + """ # unnormalize from [eps, 1-eps] to [0,1] return ((self._k.icdf(X) - self._X_min) / self._X_range).clamp(0.0, 1.0) diff --git a/v/latest/api/_modules/botorch/models/transforms/input/index.html b/v/latest/api/_modules/botorch/models/transforms/input/index.html index ce3fba0ba6..db56d076f5 100644 --- a/v/latest/api/_modules/botorch/models/transforms/input/index.html +++ b/v/latest/api/_modules/botorch/models/transforms/input/index.html @@ -1186,6 +1186,7 @@

Source code for botorch.models.transforms.input

< def __init__( self, + d: int, indices: list[int], transform_on_train: bool = True, transform_on_eval: bool = True, @@ -1195,6 +1196,7 @@

Source code for botorch.models.transforms.input

< concentration1_prior: Prior | None = None, concentration0_prior: Prior | None = None, batch_shape: torch.Size | None = None, + bounds: Tensor | None = None, ) -> None: r"""Initialize transform. @@ -1217,6 +1219,7 @@

Source code for botorch.models.transforms.input

< parameters for each batch of inputs. This should match the input batch shape of the model (i.e., `train_X.shape[:-2]`). NOTE: This is only supported for single-output models. + bounds: A `2 x d`-dim tensor of lower and upper bounds for the inputs. """ super().__init__() self.register_buffer("indices", torch.tensor(indices, dtype=torch.long)) @@ -1227,6 +1230,9 @@

Source code for botorch.models.transforms.input

< self.batch_shape = batch_shape or torch.Size([]) self._X_min = eps self._X_range = 1 - 2 * eps + self._normalize = Normalize( + d=d, indices=indices, bounds=bounds, batch_shape=self.batch_shape + ) if len(self.batch_shape) > 0: # Note: this follows the gpytorch shape convention for lengthscales # There is ongoing discussion about the extra `1`. @@ -1271,7 +1277,7 @@

Source code for botorch.models.transforms.input

< self.initialize(**{f"concentration{i}": value}) @subset_transform - def _transform(self, X: Tensor) -> Tensor: + def _warp_transform(self, X: Tensor) -> Tensor: r"""Warp the inputs through the Kumaraswamy CDF. Args: @@ -1280,10 +1286,9 @@

Source code for botorch.models.transforms.input

< it is broadcastable with self.batch_shape if self.batch_shape is set. Returns: - A `input_batch_shape x (batch_shape) x n x d`-dim tensor of transformed - inputs. + A `input_batch_shape x (batch_shape) x n x d`-dim tensor + of transformed inputs. """ - # normalize to [eps, 1-eps], IDEA: could use Normalize and ChainedTransform. return self._k.cdf( torch.clamp( X * self._X_range + self._X_min, @@ -1292,7 +1297,23 @@

Source code for botorch.models.transforms.input

< ) ) - @subset_transform + def _transform(self, X: Tensor) -> Tensor: + r"""Warp the inputs through the Kumaraswamy CDF. + + Args: + X: A `input_batch_shape x (batch_shape) x n x d`-dim tensor of inputs. + batch_shape here can either be self.batch_shape or 1's such that + it is broadcastable with self.batch_shape if self.batch_shape is set. + + Returns: + A `input_batch_shape x (batch_shape) x n x d`-dim tensor of transformed + inputs. + """ + # Normalize to unit cube + X = self._normalize(X=X) + # normalize to [eps, 1-eps], IDEA: could use Normalize and ChainedTransform. + return self._warp_transform(X=X) + def _untransform(self, X: Tensor) -> Tensor: r"""Warp the inputs through the Kumaraswamy inverse CDF. @@ -1309,6 +1330,20 @@

Source code for botorch.models.transforms.input

< "The right most batch dims of X must match self.batch_shape: " f"({self.batch_shape})." ) + untransformed_X = self._warp_untransform(X=X) + return self._normalize.untransform(X=untransformed_X) + + @subset_transform + def _warp_untransform(self, X: Tensor) -> Tensor: + r"""Warp the inputs through the Kumaraswamy inverse CDF. + + Args: + X: A `input_batch_shape x batch_shape x n x d`-dim tensor of inputs. + + Returns: + A `input_batch_shape x batch_shape x n x d`-dim tensor of transformed + inputs. + """ # unnormalize from [eps, 1-eps] to [0,1] return ((self._k.icdf(X) - self._X_min) / self._X_range).clamp(0.0, 1.0) diff --git a/v/latest/api/models.html b/v/latest/api/models.html index 30353f8fb4..a53d563b84 100644 --- a/v/latest/api/models.html +++ b/v/latest/api/models.html @@ -6805,7 +6805,7 @@

Transforms
-class botorch.models.transforms.input.Warp(indices, transform_on_train=True, transform_on_eval=True, transform_on_fantasize=True, reverse=False, eps=1e-07, concentration1_prior=None, concentration0_prior=None, batch_shape=None)[source]
+class botorch.models.transforms.input.Warp(d, indices, transform_on_train=True, transform_on_eval=True, transform_on_fantasize=True, reverse=False, eps=1e-07, concentration1_prior=None, concentration0_prior=None, batch_shape=None, bounds=None)[source]

Bases: ReversibleInputTransform, Module

A transform that uses learned input warping functions.

Each specified input dimension is warped using the CDF of a @@ -6838,6 +6838,8 @@

Transforms
-class botorch.models.transforms.input.Warp(indices, transform_on_train=True, transform_on_eval=True, transform_on_fantasize=True, reverse=False, eps=1e-07, concentration1_prior=None, concentration0_prior=None, batch_shape=None)[source]
+class botorch.models.transforms.input.Warp(d, indices, transform_on_train=True, transform_on_eval=True, transform_on_fantasize=True, reverse=False, eps=1e-07, concentration1_prior=None, concentration0_prior=None, batch_shape=None, bounds=None)[source]

Bases: ReversibleInputTransform, Module

A transform that uses learned input warping functions.

Each specified input dimension is warped using the CDF of a @@ -6838,6 +6838,8 @@

Transforms" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -104,7 +102,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -131,7 +129,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -166,7 +164,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -174,14 +172,16 @@ "from gpytorch.priors.torch_priors import LogNormalPrior\n", "\n", "\n", - "def initialize_model(train_x, train_obj):\n", + "def initialize_model(train_x, train_obj, bounds):\n", " # initialize input_warping transformation\n", " warp_tf = Warp(\n", + " d=train_x.shape[-1],\n", " indices=list(range(train_x.shape[-1])),\n", " # use a prior with median at 1.\n", " # when a=1 and b=1, the Kumaraswamy CDF is the identity function\n", " concentration1_prior=LogNormalPrior(0.0, 0.75**0.5),\n", " concentration0_prior=LogNormalPrior(0.0, 0.75**0.5),\n", + " bounds=bounds,\n", " )\n", " # define the model for objective\n", " model = SingleTaskGP(\n", @@ -204,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -248,7 +248,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -274,7 +274,7 @@ "torch.manual_seed(0)\n", "\n", "best_observed = [best_observed_value]\n", - "mll, model = initialize_model(train_x, train_obj)\n", + "mll, model = initialize_model(train_x, train_obj, bounds)\n", "\n", "# run N_BATCH rounds of BayesOpt after the initial random batch\n", "for iteration in range(1, N_BATCH + 1):\n", @@ -294,7 +294,7 @@ " best_value = obj(train_x).max().item()\n", " best_observed.append(best_value)\n", "\n", - " mll, model = initialize_model(train_x, train_obj)\n", + " mll, model = initialize_model(train_x, train_obj, bounds)\n", "\n", " print(\".\", end=\"\")" ] @@ -309,29 +309,27 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "Text(0, 0.5, 'Log10 Regret')" ] }, - "execution_count": 9, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], diff --git a/v/latest/files/bo_with_warped_gp.py b/v/latest/files/bo_with_warped_gp.py index 960868e9bf..15e3b48e8d 100644 --- a/v/latest/files/bo_with_warped_gp.py +++ b/v/latest/files/bo_with_warped_gp.py @@ -24,7 +24,7 @@ # # [1] [J. Snoek, K. Swersky, R. S. Zemel, R. P. Adams. Input Warping for Bayesian Optimization of Non-Stationary Functions. Proceedings of the 31st International Conference on Machine Learning, PMLR 32(2):1674-1682, 2014.](http://proceedings.mlr.press/v32/snoek14.pdf) -# In[1]: +# In[2]: import os @@ -40,7 +40,7 @@ # # First, we define the sample parameters for the sigmoid functions that transform the respective inputs. -# In[2]: +# In[3]: from torch.distributions import Kumaraswamy @@ -64,7 +64,7 @@ ax.set_ylabel("Transformed Value", **fontdict) -# In[3]: +# In[4]: from botorch.test_functions import Hartmann @@ -83,7 +83,7 @@ def obj(X): # # We observe the objectives with additive Gaussian noise with a standard deviation of 0.05. -# In[4]: +# In[5]: from botorch.models import SingleTaskGP @@ -110,21 +110,23 @@ def obj(X): # #### Input warping and model initialization # We initialize the `Warp` input transformation and pass it a `SingleTaskGP` to model the noiseless objective. The `Warp` object is a `torch.nn.Module` that contains the concentration parameters and applies the warping function in the `Model`'s `forward` pass. -# In[5]: +# In[6]: from botorch.models.transforms.input import Warp from gpytorch.priors.torch_priors import LogNormalPrior -def initialize_model(train_x, train_obj): +def initialize_model(train_x, train_obj, bounds): # initialize input_warping transformation warp_tf = Warp( + d=train_x.shape[-1], indices=list(range(train_x.shape[-1])), # use a prior with median at 1. # when a=1 and b=1, the Kumaraswamy CDF is the identity function concentration1_prior=LogNormalPrior(0.0, 0.75**0.5), concentration0_prior=LogNormalPrior(0.0, 0.75**0.5), + bounds=bounds, ) # define the model for objective model = SingleTaskGP( @@ -140,7 +142,7 @@ def initialize_model(train_x, train_obj): # #### Define a helper function that performs the essential BO step # The helper function below takes an acquisition function as an argument, optimizes it, and returns the batch $\{x_1, x_2, \ldots x_q\}$ along with the observed function values. For this example, we'll use sequential $q=1$ optimization. A simple initialization heuristic is used to select the 20 restart initial locations from a set of 512 random points. -# In[6]: +# In[7]: from botorch.optim import optimize_acqf @@ -176,7 +178,7 @@ def optimize_acqf_and_get_observation(acq_func): # # We do `N_BATCH=50` rounds of optimization. -# In[7]: +# In[8]: from botorch import fit_gpytorch_mll @@ -193,7 +195,7 @@ def optimize_acqf_and_get_observation(acq_func): torch.manual_seed(0) best_observed = [best_observed_value] -mll, model = initialize_model(train_x, train_obj) +mll, model = initialize_model(train_x, train_obj, bounds) # run N_BATCH rounds of BayesOpt after the initial random batch for iteration in range(1, N_BATCH + 1): @@ -213,7 +215,7 @@ def optimize_acqf_and_get_observation(acq_func): best_value = obj(train_x).max().item() best_observed.append(best_value) - mll, model = initialize_model(train_x, train_obj) + mll, model = initialize_model(train_x, train_obj, bounds) print(".", end="") @@ -221,7 +223,7 @@ def optimize_acqf_and_get_observation(acq_func): # #### Plot the results # The plot below shows the log regret at each step of the optimization for each of the algorithms. -# In[8]: +# In[9]: import numpy as np diff --git a/v/latest/tutorials/bo_with_warped_gp.html b/v/latest/tutorials/bo_with_warped_gp.html index b28957447e..fd5395131a 100644 --- a/v/latest/tutorials/bo_with_warped_gp.html +++ b/v/latest/tutorials/bo_with_warped_gp.html @@ -88,7 +88,7 @@

BO with Warped Gaussian Processes
-
In [1]:
+
In [2]:
import os
@@ -112,7 +112,7 @@ 

Problem setup
-
In [2]:
+
In [3]:
from torch.distributions import Kumaraswamy
@@ -141,7 +141,7 @@ 

Problem setup @@ -158,7 +157,7 @@

Problem setup
-
In [3]:
+
In [4]:
from botorch.test_functions import Hartmann
@@ -184,7 +183,7 @@ 

Initial design
-
In [4]:
+
In [5]:
from botorch.models import SingleTaskGP
@@ -220,21 +219,23 @@ 

Input warping and model initiali

-
In [5]:
+
In [6]:
from botorch.models.transforms.input import Warp
 from gpytorch.priors.torch_priors import LogNormalPrior
 
 
-def initialize_model(train_x, train_obj):
+def initialize_model(train_x, train_obj, bounds):
     # initialize input_warping transformation
     warp_tf = Warp(
+        d=train_x.shape[-1],
         indices=list(range(train_x.shape[-1])),
         # use a prior with median at 1.
         # when a=1 and b=1, the Kumaraswamy CDF is the identity function
         concentration1_prior=LogNormalPrior(0.0, 0.75**0.5),
         concentration0_prior=LogNormalPrior(0.0, 0.75**0.5),
+        bounds=bounds,
     )
     # define the model for objective
     model = SingleTaskGP(
@@ -259,7 +260,7 @@ 

Define a h

-
In [6]:
+
In [7]:
from botorch.optim import optimize_acqf
@@ -305,7 +306,7 @@ 

Perform Bayesian Optimization
-
In [7]:
+
In [8]:
@@ -369,7 +370,7 @@

Plot the results
-
In [8]:
+
In [9]:
import numpy as np
@@ -401,15 +402,15 @@ 

Plot the results
-
Out[8]:
+
Out[9]:
-
<matplotlib.legend.Legend at 0x7fec08ec4eb0>
+
Text(0, 0.5, 'Log10 Regret')
-No description has been provided for this image +No description has been provided for this image
diff --git a/v/latest/tutorials/bo_with_warped_gp/index.html b/v/latest/tutorials/bo_with_warped_gp/index.html index b28957447e..fd5395131a 100644 --- a/v/latest/tutorials/bo_with_warped_gp/index.html +++ b/v/latest/tutorials/bo_with_warped_gp/index.html @@ -88,7 +88,7 @@

BO with Warped Gaussian Processes
-
In [1]:
+
In [2]:
import os
@@ -112,7 +112,7 @@ 

Problem setup
-
In [2]:
+
In [3]:
from torch.distributions import Kumaraswamy
@@ -141,7 +141,7 @@ 

Problem setup @@ -158,7 +157,7 @@

Problem setup
-
In [3]:
+
In [4]:
from botorch.test_functions import Hartmann
@@ -184,7 +183,7 @@ 

Initial design
-
In [4]:
+
In [5]:
from botorch.models import SingleTaskGP
@@ -220,21 +219,23 @@ 

Input warping and model initiali

-
In [5]:
+
In [6]:
from botorch.models.transforms.input import Warp
 from gpytorch.priors.torch_priors import LogNormalPrior
 
 
-def initialize_model(train_x, train_obj):
+def initialize_model(train_x, train_obj, bounds):
     # initialize input_warping transformation
     warp_tf = Warp(
+        d=train_x.shape[-1],
         indices=list(range(train_x.shape[-1])),
         # use a prior with median at 1.
         # when a=1 and b=1, the Kumaraswamy CDF is the identity function
         concentration1_prior=LogNormalPrior(0.0, 0.75**0.5),
         concentration0_prior=LogNormalPrior(0.0, 0.75**0.5),
+        bounds=bounds,
     )
     # define the model for objective
     model = SingleTaskGP(
@@ -259,7 +260,7 @@ 

Define a h