from botorch.acquisition import AcquisitionFunction from torch import Tensor class ExpectedImprovement(AcquisitionFunction): def forward(self, X: Tensor, best_f, maximize=True) -> Tensor: # X: evaluation_points x feature_dim assert len(X.shape) == 2 model = self.get_submodule('model') y = model(X) full_range = model.full_range