in ax/models/torch/fully_bayesian_model_utils.py [0:0]
def load_mcmc_samples_to_model(model: GPyTorchModel, mcmc_samples: Dict) -> None:
"""Load MCMC samples into GPyTorchModel."""
if "noise" in mcmc_samples:
model.likelihood.noise_covar.noise = (
mcmc_samples["noise"]
.detach()
.clone()
.view(model.likelihood.noise_covar.noise.shape) # pyre-ignore
.clamp_min(MIN_INFERRED_NOISE_LEVEL)
)
model.covar_module.base_kernel.lengthscale = (
mcmc_samples["lengthscale"]
.detach()
.clone()
.view(model.covar_module.base_kernel.lengthscale.shape) # pyre-ignore
)
model.covar_module.outputscale = ( # pyre-ignore
mcmc_samples["outputscale"]
.detach()
.clone()
# pyre-fixme[16]: Item `Tensor` of `Union[Tensor, Module]` has no attribute
# `outputscale`.
.view(model.covar_module.outputscale.shape)
)
model.mean_module.constant.data = (
mcmc_samples["mean"]
.detach()
.clone()
.view(model.mean_module.constant.shape) # pyre-ignore
)
if "c0" in mcmc_samples:
model.input_transform._set_concentration( # pyre-ignore
i=0,
value=mcmc_samples["c0"]
.detach()
.clone()
.view(model.input_transform.concentration0.shape), # pyre-ignore
)
# pyre-fixme[16]: Item `Tensor` of `Union[Tensor, Module]` has no attribute
# `_set_concentration`.
model.input_transform._set_concentration(
i=1,
value=mcmc_samples["c1"]
.detach()
.clone()
.view(model.input_transform.concentration1.shape), # pyre-ignore
)