Skip to content

Commit e6fc7b4

Browse files
sdaultonmeta-codesync[bot]
authored andcommitted
Remove fully_bayesian re-exports from botorch.models.__init__ (#3291)
Summary: Pull Request resolved: #3291 X-link: facebook/Ax#5190 Differential Revision: D102367257
1 parent fa4bc2b commit e6fc7b4

9 files changed

Lines changed: 1214 additions & 1214 deletions

File tree

botorch/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
test_functions,
1717
)
1818
from botorch.cross_validation import batch_cross_validation
19-
from botorch.fit import fit_fully_bayesian_model_nuts, fit_gpytorch_mll
19+
from botorch.fit import fit_gpytorch_mll
2020
from botorch.generation.gen import (
2121
gen_candidates_scipy,
2222
gen_candidates_torch,
@@ -53,7 +53,6 @@
5353
"acquisition",
5454
"batch_cross_validation",
5555
"exceptions",
56-
"fit_fully_bayesian_model_nuts",
5756
"fit_gpytorch_mll",
5857
"gen_candidates_scipy",
5958
"gen_candidates_torch",

botorch/fit.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,17 @@
1212
from copy import deepcopy
1313
from functools import partial
1414
from itertools import filterfalse
15-
from typing import Any
15+
from typing import Any, TYPE_CHECKING
1616
from warnings import catch_warnings, simplefilter, warn_explicit, WarningMessage
1717

18-
import jax
18+
if TYPE_CHECKING:
19+
from botorch.models.fully_bayesian import AbstractFullyBayesianSingleTaskGP
20+
from botorch.models.fully_bayesian_multitask import SaasFullyBayesianMultiTaskGP
21+
1922
from botorch.exceptions.errors import ModelFittingError, UnsupportedError
2023
from botorch.exceptions.warnings import OptimizationWarning
2124
from botorch.logging import logger
2225
from botorch.models import SingleTaskGP
23-
from botorch.models.fully_bayesian import AbstractFullyBayesianSingleTaskGP
24-
from botorch.models.fully_bayesian_multitask import SaasFullyBayesianMultiTaskGP
2526
from botorch.models.map_saas import get_map_saas_model
2627
from botorch.models.model_list_gp_regression import ModelListGP
2728
from botorch.models.transforms.input import InputTransform
@@ -44,7 +45,6 @@
4445
from gpytorch.mlls.marginal_log_likelihood import MarginalLogLikelihood
4546
from gpytorch.mlls.sum_marginal_log_likelihood import SumMarginalLogLikelihood
4647
from linear_operator.utils.errors import NotPSDError
47-
from numpyro.infer import MCMC, NUTS
4848
from torch import device, Tensor
4949
from torch.nn import Parameter
5050
from torch.utils.data import DataLoader
@@ -367,6 +367,11 @@ def fit_fully_bayesian_model_nuts(
367367
>>> gp = SaasFullyBayesianSingleTaskGP(train_X, train_Y)
368368
>>> fit_fully_bayesian_model_nuts(gp)
369369
"""
370+
# Local import to avoid pulling in JAX/numpyro at module level,
371+
# which would break environments without NumPy >= 2.0.
372+
import jax
373+
from numpyro.infer import MCMC, NUTS
374+
370375
model.train()
371376

372377
# Do inference with NUTS

botorch/models/__init__.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
GenericDeterministicModel,
1515
PosteriorMeanModel,
1616
)
17-
from botorch.models.fully_bayesian import SaasFullyBayesianSingleTaskGP
18-
from botorch.models.fully_bayesian_multitask import SaasFullyBayesianMultiTaskGP
1917
from botorch.models.gp_regression import SingleTaskGP
2018
from botorch.models.gp_regression_fidelity import SingleTaskMultiFidelityGP
2119
from botorch.models.gp_regression_mixed import MixedSingleTaskGP
@@ -47,8 +45,6 @@
4745
"PairwiseGP",
4846
"PairwiseLaplaceMarginalLogLikelihood",
4947
"PosteriorMeanModel",
50-
"SaasFullyBayesianMultiTaskGP",
51-
"SaasFullyBayesianSingleTaskGP",
5248
"SingleTaskGP",
5349
"SingleTaskMultiFidelityGP",
5450
"SingleTaskVariationalGP",

botorch/posteriors/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
# This source code is licensed under the MIT license found in the
55
# LICENSE file in the root directory of this source tree.
66

7-
from botorch.posteriors.fully_bayesian import GaussianMixturePosterior
87
from botorch.posteriors.gpytorch import GPyTorchPosterior
98
from botorch.posteriors.higher_order import HigherOrderGPPosterior
109
from botorch.posteriors.multitask import MultitaskGPPosterior
@@ -14,7 +13,6 @@
1413
from botorch.posteriors.transformed import TransformedPosterior
1514

1615
__all__ = [
17-
"GaussianMixturePosterior",
1816
"GPyTorchPosterior",
1917
"HigherOrderGPPosterior",
2018
"MultitaskGPPosterior",

test/acquisition/test_input_constructors.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,9 @@
111111
project_to_target_fidelity,
112112
)
113113
from botorch.exceptions.errors import BotorchError, UnsupportedError
114-
from botorch.models import MultiTaskGP, SaasFullyBayesianSingleTaskGP, SingleTaskGP
114+
from botorch.models import MultiTaskGP, SingleTaskGP
115115
from botorch.models.deterministic import FixedSingleSampleModel
116+
from botorch.models.fully_bayesian import SaasFullyBayesianSingleTaskGP
116117
from botorch.models.model_list_gp_regression import ModelListGP
117118
from botorch.optim.optimize import optimize_acqf
118119
from botorch.sampling.normal import IIDNormalSampler, SobolQMCNormalSampler

test/models/test_fully_bayesian.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import jax.numpy as jnp
1313
import numpyro
1414
import torch
15-
from botorch import fit_fully_bayesian_model_nuts, utils
15+
from botorch import utils
1616
from botorch.acquisition.analytic import (
1717
ExpectedImprovement,
1818
PosteriorMean,
@@ -41,6 +41,7 @@
4141
qLogNoisyExpectedHypervolumeImprovement,
4242
)
4343
from botorch.acquisition.utils import prune_inferior_points
44+
from botorch.fit import fit_fully_bayesian_model_nuts
4445
from botorch.models import ModelList, ModelListGP
4546
from botorch.models.deterministic import GenericDeterministicModel
4647
from botorch.models.fully_bayesian import (

test/models/test_fully_bayesian_multitask.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import jax.numpy as jnp
1111
import numpyro.handlers
1212
import torch
13-
from botorch import fit_fully_bayesian_model_nuts
1413
from botorch.acquisition.analytic import (
1514
LogExpectedImprovement,
1615
PosteriorMean,
@@ -30,6 +29,7 @@
3029
qLogExpectedHypervolumeImprovement,
3130
qLogNoisyExpectedHypervolumeImprovement,
3231
)
32+
from botorch.fit import fit_fully_bayesian_model_nuts
3333
from botorch.models import ModelList, ModelListGP
3434
from botorch.models.deterministic import GenericDeterministicModel
3535
from botorch.models.fully_bayesian import (
@@ -48,7 +48,7 @@
4848
)
4949
from botorch.models.transforms.input import Normalize
5050
from botorch.models.transforms.outcome import Standardize
51-
from botorch.posteriors import GaussianMixturePosterior
51+
from botorch.posteriors.fully_bayesian import GaussianMixturePosterior
5252
from botorch.sampling.get_sampler import get_sampler
5353
from botorch.sampling.normal import IIDNormalSampler
5454
from botorch.utils.multi_objective.box_decompositions.non_dominated import (

test/utils/test_transforms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
HigherOrderGP,
1515
ModelList,
1616
PairwiseGP,
17-
SaasFullyBayesianSingleTaskGP,
1817
SingleTaskGP,
1918
)
19+
from botorch.models.fully_bayesian import SaasFullyBayesianSingleTaskGP
2020
from botorch.models.fully_bayesian_multitask import SaasFullyBayesianMultiTaskGP
2121
from botorch.models.gp_regression_fidelity import SingleTaskMultiFidelityGP
2222
from botorch.models.gp_regression_mixed import MixedSingleTaskGP

0 commit comments

Comments
 (0)