diff --git a/BLcourse2.3/01_one_dim.py b/BLcourse2.3/01_one_dim.py index ec72e4e1e1c758554ad1adfc97838a8f9479567f..f29e5bbd6556259f674c9c8fcf7b3935461ddc94 100644 --- a/BLcourse2.3/01_one_dim.py +++ b/BLcourse2.3/01_one_dim.py @@ -500,7 +500,9 @@ print( print( "learned noise:", np.sqrt( - extract_model_params(model, try_item=True)["likelihood.noise_covar.noise"] + extract_model_params(model, try_item=True)[ + "likelihood.noise_covar.noise" + ] ), ) # - diff --git a/BLcourse2.3/02_two_dim.py b/BLcourse2.3/02_two_dim.py index 35311dec6507c821d60ad34d54b8a5909cbca4ba..c5ab47b03f62733c7fee699f1bc352c5b73f7aa4 100644 --- a/BLcourse2.3/02_two_dim.py +++ b/BLcourse2.3/02_two_dim.py @@ -28,7 +28,6 @@ # $\newcommand{\testtest}[1]{#1_{**}}$ # $\DeclareMathOperator{\diag}{diag}$ # $\DeclareMathOperator{\cov}{cov}$ -# # + # ##%matplotlib notebook @@ -239,7 +238,7 @@ model = ExactGPModel(X_train, y_train, likelihood) print(model) # Default start hyper params -pprint(extract_model_params(model, raw=False)) +pprint(extract_model_params(model)) # + # Set new start hyper params @@ -248,7 +247,7 @@ model.covar_module.base_kernel.lengthscale = 3.0 model.covar_module.outputscale = 8.0 model.likelihood.noise_covar.noise = 0.1 -pprint(extract_model_params(model, raw=False)) +pprint(extract_model_params(model)) # - # # Fit GP to data: optimize hyper params @@ -270,7 +269,7 @@ for ii in range(n_iter): optimizer.step() if (ii + 1) % 10 == 0: print(f"iter {ii + 1}/{n_iter}, {loss=:.3f}") - for p_name, p_val in extract_model_params(model).items(): + for p_name, p_val in extract_model_params(model, try_item=True).items(): history[p_name].append(p_val) history["loss"].append(loss.item()) # - @@ -283,7 +282,7 @@ for ax, (p_name, p_lst) in zip(axs, history.items()): ax.set_xlabel("iterations") # Values of optimized hyper params -pprint(extract_model_params(model, raw=False)) +pprint(extract_model_params(model)) # # Run prediction @@ -403,7 +402,9 @@ print( print( "learned noise:", np.sqrt( - extract_model_params(model, raw=False)["likelihood.noise_covar.noise"] + extract_model_params(model, try_item=True)[ + "likelihood.noise_covar.noise" + ] ), ) # - diff --git a/BLcourse2.3/03_one_dim_SVI.py b/BLcourse2.3/03_one_dim_SVI.py index 86d70736f8de63c85fe79b40502c9cd450281f15..8efb75d312396a0776e79ff4d35b07f8a81865c1 100644 --- a/BLcourse2.3/03_one_dim_SVI.py +++ b/BLcourse2.3/03_one_dim_SVI.py @@ -171,9 +171,9 @@ print(likelihood) # Default start hyper params print("model params:") -pprint(extract_model_params(model, raw=False, try_item=False)) +pprint(extract_model_params(model)) print("likelihood params:") -pprint(extract_model_params(likelihood, raw=False, try_item=False)) +pprint(extract_model_params(likelihood)) # + # Set new start hyper params @@ -258,9 +258,9 @@ with torch.no_grad(): # Values of optimized hyper params print("model params:") -pprint(extract_model_params(model, raw=False, try_item=False)) +pprint(extract_model_params(model)) print("likelihood params:") -pprint(extract_model_params(likelihood, raw=False, try_item=False)) +pprint(extract_model_params(likelihood)) # # Run prediction @@ -364,7 +364,7 @@ print( print( "learned noise:", np.sqrt( - extract_model_params(likelihood, raw=False)["noise_covar.noise"] + extract_model_params(likelihood, try_item=True)["noise_covar.noise"] ), ) # - diff --git a/BLcourse2.3/utils.py b/BLcourse2.3/utils.py index 0c0e605232bab6fd12cda350a2c612cad9c1b58b..260be47d40d412b26d53a8a7db5e86c3e0996903 100644 --- a/BLcourse2.3/utils.py +++ b/BLcourse2.3/utils.py @@ -13,6 +13,7 @@ def extract_model_params(model, raw=False, try_item=False) -> dict: See https://docs.gpytorch.ai/en/stable/examples/00_Basic_Usage/Hyperparameters.html#Raw-vs-Actual-Parameters """ if try_item: + def get_val(p): if isinstance(p, torch.Tensor): if p.ndim == 0: