Skip to content

Improve model fitting functionality

Compare
Choose a tag to compare
@Balandat Balandat released this 27 Sep 18:33
· 738 commits to main since this release

New Features

  • A full refactor of model fitting methods (#1134).
    • This introduces a new fit_gpytorch_mll method that multiple-dispatches on the model type. Users may register custom fitting routines for different combinations of MLLs, Likelihoods, and Models.
    • Unlike previous fitting helpers, fit_gpytorch_mll does not pass kwargs to optimizer and instead introduces an optional optimizer_kwargs argument.
    • When a model fitting attempt fails, botorch.fit methods restore modules to their original states.
    • fit_gpytorch_mll throws a ModelFittingError when all model fitting attempts fail.
    • Upon returning from fit_gpytorch_mll, mll.training will be True if fitting failed and False otherwise.
  • Allow custom bounds to be passed in to SyntheticTestFunction (#1415).

Deprecations

  • Deprecate weights argument of risk measures in favor of a preprocessing_function (#1400),
  • Deprecate fit_gyptorch_model; to be superseded by fit_gpytorch_mll.

Other Changes

  • Support risk measures in MOO input constructors (#1401).

Bug Fixes

  • Fix fully Bayesian state dict loading when there are more than 10 models (#1405).
  • Fix batch_shape property of SaasFullyBayesianSingleTaskGP (#1413).
  • Fix model_list_to_batched ignoring the covar_module of the input models (#1419).