Skip to content

Commit

Permalink
black trial
Browse files Browse the repository at this point in the history
  • Loading branch information
ozgesurer committed Jul 22, 2023
1 parent 08f38c8 commit ee2b454
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 29 deletions.
2 changes: 1 addition & 1 deletion PUQ/designmethods/gen_funcs/acquisition_funcs.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def maxvar(
obsvar3d = obsvar.reshape(1, d, d)
diags = np.diag(obsvar[real_x, real_x.T])
d_real = real_x.shape[0]
coef = (2**d_real) * (np.sqrt(np.pi) ** d_real) * np.sqrt(np.prod(diags))
coef = (2 ** d_real) * (np.sqrt(np.pi) ** d_real) * np.sqrt(np.prod(diags))

# Create a candidate list.
n_clist = 100 * n
Expand Down
4 changes: 2 additions & 2 deletions PUQ/designmethods/gen_funcs/acquisition_funcs_support.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def compute_postvar(obs, emumean, covmat1, covmat2, coef):
part1 = part1 * (1 / coef)

# part2 = compute_likelihood(emumean, emuvar, obs, obsvar, is_cov)
part2 = part2**2
part2 = part2 ** 2

return part1 - part2

Expand Down Expand Up @@ -73,7 +73,7 @@ def compute_eivar(summatrix, emuphi, emumean, emuvar, obs, is_cov, prioreval):
denum = multiple_determinants(covmat2)
part2 = rndpdf / np.sqrt(denum)
# print(part2.shape)
return -np.sum(part2 * (prioreval**2))
return -np.sum(part2 * (prioreval ** 2))


def multiple_pdfs(x, means, covs):
Expand Down
8 changes: 6 additions & 2 deletions PUQ/designmethods/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,12 @@

def parse_arguments():
parser = argparse.ArgumentParser("Parameters for calibration")
parser.add_argument("-nworkers", metavar="N2", default=2, type=int, help="Number of workers.")
parser.add_argument("-minibatch", metavar="N2", default=1, type=int, help="Minibatch size.")
parser.add_argument(
"-nworkers", metavar="N2", default=2, type=int, help="Number of workers."
)
parser.add_argument(
"-minibatch", metavar="N2", default=1, type=int, help="Minibatch size."
)
parser.add_argument(
"-max_eval",
metavar="N2",
Expand Down
6 changes: 3 additions & 3 deletions PUQ/posterior.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def predict(self, theta):
obsvar3d = obsvar.reshape(1, d, d)
diags = np.diag(obsvar[real_x, real_x.T])
d_real = real_x.shape[0]
coef = (2**d_real) * (np.sqrt(np.pi) ** d_real) * np.sqrt(np.prod(diags))
coef = (2 ** d_real) * (np.sqrt(np.pi) ** d_real) * np.sqrt(np.prod(diags))

emupred_test = emu.predict(x=data_cls.x, theta=theta)
emumean = emupred_test.mean()
Expand All @@ -33,7 +33,7 @@ def predict(self, theta):
var_obsvar1 = emuvarT + obsvar3d
var_obsvar2 = emuvarT + 0.5 * obsvar3d
diags = np.diag(obsvar[real_x, real_x.T])
coef = (2**d_real) * (np.sqrt(np.pi) ** d_real) * np.sqrt(np.prod(diags))
coef = (2 ** d_real) * (np.sqrt(np.pi) ** d_real) * np.sqrt(np.prod(diags))

postmean = multiple_pdfs(
obs, emumeanT[:, real_x.flatten()], var_obsvar1[:, real_x, real_x.T]
Expand Down Expand Up @@ -76,7 +76,7 @@ def compute_postvar(obs, emumean, covmat1, covmat2, coef):
part1 = part1 * (1 / coef)

# part2 = compute_likelihood(emumean, emuvar, obs, obsvar, is_cov)
part2 = part2**2
part2 = part2 ** 2

return part1 - part2

Expand Down
20 changes: 10 additions & 10 deletions PUQ/surrogatemethods/PCGP.py
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ def predict(predinfo, fitinfo, x, theta, **kwargs):
predvars_gradtheta[:, k, :] = -(infos[k]["sig2"] * 2) * np.einsum(
"ij,ijk->ik", rVh2, dr
)
predvars[:, k] = infos[k]["sig2"] * np.abs(1 - np.sum(rVh**2, 1))
predvars[:, k] = infos[k]["sig2"] * np.abs(1 - np.sum(rVh ** 2, 1))

# calculate predictive mean and variance
predinfo["mean"] = np.full((x.shape[0], theta.shape[0]), np.nan)
Expand Down Expand Up @@ -427,7 +427,7 @@ def acquisition(fitinfo, x, theta1, theta2, **kwargs):
)
# print('predcov:', predcov.shape)

predvars_2[:, k] = infos[k]["sig2"] * np.abs(1 - np.sum(rVh_2**2, 1))
predvars_2[:, k] = infos[k]["sig2"] * np.abs(1 - np.sum(rVh_2 ** 2, 1))
predvars_2[:, k] += infos[k]["nug"]

# print('predvars_2:', predvars_2.shape)
Expand Down Expand Up @@ -466,7 +466,7 @@ def predictlpdf(predinfo, f, return_grad=False, addvar=0, **kwargs):
Gf = predinfo["phi"].T * (1 / np.sqrt(totvar))
Gfrf = Gf @ rf
Gf2 = Gf @ Gf.T
likv = np.sum(rf**2, 0)
likv = np.sum(rf ** 2, 0)
if return_grad:
rf2 = -(
predinfo["mean_gradtheta"].transpose(2, 1, 0) * (1 / np.sqrt(totvar))
Expand Down Expand Up @@ -525,10 +525,10 @@ def __standardizef(fitinfo, offset=None, scale=None):

# Assigning new values to the dictionary
U, S, _ = np.linalg.svd(fs.T, full_matrices=False)
Sp = S**2 - epsilonPC
Sp = S ** 2 - epsilonPC
Up = U[:, Sp > 0]

extravar = np.nanmean((fs - fs @ Up @ Up.T) ** 2, 0) * (scale**2)
extravar = np.nanmean((fs - fs @ Up @ Up.T) ** 2, 0) * (scale ** 2)

standardpcinfo = {
"offset": offset,
Expand All @@ -555,7 +555,7 @@ def __PCs(fitinfo):
S = fitinfo["standardpcinfo"]["S"]
else:
U, S, _ = np.linalg.svd(fs.T, full_matrices=False)
Sp = S**2 - epsilonPC
Sp = S ** 2 - epsilonPC
pct = U[:, Sp > 0]
pcw = np.sqrt(Sp[Sp > 0])

Expand Down Expand Up @@ -747,7 +747,7 @@ def scaledlikgrad(hypv):
fcenter = Vh.T @ g
subinfo["Vh"] = Vh
n = subinfo["R"].shape[0]
subinfo["sig2"] = (np.mean(fcenter**2) * n + sig2ofconst) / (n + sig2ofconst)
subinfo["sig2"] = (np.mean(fcenter ** 2) * n + sig2ofconst) / (n + sig2ofconst)
subinfo["Rinv"] = V @ np.diag(1 / W) @ V.T
else:
subinfo["hyp"] = hypn
Expand All @@ -764,7 +764,7 @@ def scaledlikgrad(hypv):
W, V = np.linalg.eigh(subinfo["R"])
Vh = V / np.sqrt(np.abs(W))
fcenter = Vh.T @ g
subinfo["sig2"] = (np.mean(fcenter**2) * n + sig2ofconst) / (n + sig2ofconst)
subinfo["sig2"] = (np.mean(fcenter ** 2) * n + sig2ofconst) / (n + sig2ofconst)
subinfo["Rinv"] = Vh @ Vh.T
subinfo["Vh"] = Vh
subinfo["pw"] = subinfo["Rinv"] @ g
Expand All @@ -785,7 +785,7 @@ def __negloglik(hyp, info):
n = info["g"].shape[0]

sig2ofconst = info["sig2ofconst"]
sig2hat = (n * np.mean(fcenter**2) + sig2ofconst) / (n + sig2ofconst)
sig2hat = (n * np.mean(fcenter ** 2) + sig2ofconst) / (n + sig2ofconst)
negloglik = 1 / 2 * np.sum(np.log(np.abs(W))) + 1 / 2 * n * np.log(sig2hat)
negloglik += 0.5 * np.sum(
((10 ** (-8) + hyp - info["hypregmean"]) / (info["hypregstd"])) ** 2
Expand Down Expand Up @@ -816,7 +816,7 @@ def __negloglikgrad(hyp, info):
n = info["g"].shape[0]

sig2ofconst = info["sig2ofconst"]
sig2hat = (n * np.mean(fcenter**2) + sig2ofconst) / (n + sig2ofconst)
sig2hat = (n * np.mean(fcenter ** 2) + sig2ofconst) / (n + sig2ofconst)
dnegloglik = np.zeros(dR.shape[2])
Rinv = Vh @ Vh.T

Expand Down
7 changes: 4 additions & 3 deletions examples/figure1b.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as sps
#import os

# import os
from PUQ.design import designer
from PUQ.designmethods.utils import parse_arguments
from PUQ.prior import prior_dist
Expand Down Expand Up @@ -114,7 +115,7 @@ def sim(self, H, persis_info, sim_specs, libE_info):
ax.tick_params(axis="both", labelsize=16)
plt.savefig("Figure1b.png", bbox_inches="tight")

#if os.path.exists('ensemble.log'):
# if os.path.exists('ensemble.log'):
# os.remove('ensemble.log')
#if os.path.exists('libE_stats.txt'):
# if os.path.exists('libE_stats.txt'):
# os.remove('libE_stats.txt')
2 changes: 1 addition & 1 deletion examples/figure3.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ def compute_eivar_full(clist, theta, theta_test, emu):
var_obsvar1 = emuvarT + obsvar3d
var_obsvar2 = emuvarT + 0.5 * obsvar3d
diags = np.diag(obsvar[real_x, real_x.T])
coef = (2**d_real) * (np.sqrt(np.pi) ** d_real) * np.sqrt(np.prod(diags))
coef = (2 ** d_real) * (np.sqrt(np.pi) ** d_real) * np.sqrt(np.prod(diags))

# Get the n_ref x d x d x n_cand phi matrix
emuphi4d = emu.acquisition(x=x, theta1=theta_test, theta2=clist)
Expand Down
7 changes: 3 additions & 4 deletions examples/plots.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import matplotlib.pyplot as plt
import os


def plotline(df, methods, rep_no, w=2, b=1, s="banana", ylim=[0.000001, 1], idstart=0):
colors = ["red", "green", "blue", "cyan", "magenta"]
markers = ["o", "+", "*", "D", "v"]
Expand Down Expand Up @@ -49,9 +50,7 @@ def plotline(df, methods, rep_no, w=2, b=1, s="banana", ylim=[0.000001, 1], idst
ax.tick_params(axis="both", labelsize=ft)
plt.savefig("Figure6_" + s + ".png", bbox_inches="tight")



#if os.path.exists('ensemble.log'):
# if os.path.exists('ensemble.log'):
# os.remove('ensemble.log')
#if os.path.exists('libE_stats.txt'):
# if os.path.exists('libE_stats.txt'):
# os.remove('libE_stats.txt')
6 changes: 3 additions & 3 deletions examples/test_funcs.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class banana:
def __init__(self):
self.data_name = "banana"
self.thetalimits = np.array([[-20, 20], [-10, 5]])
self.obsvar = np.array([[10**2, 0], [0, 1]])
self.obsvar = np.array([[10 ** 2, 0], [0, 1]])
self.real_data = np.array([[1, 3]], dtype="float64")
self.out = [("f", float, (2,))]
self.p = 2
Expand All @@ -47,7 +47,7 @@ def __init__(self):
self.real_x = np.arange(0, self.d)[:, None]

def function(self, theta1, theta2):
f = np.array([theta1, theta2 + 0.03 * theta1**2])
f = np.array([theta1, theta2 + 0.03 * theta1 ** 2])
return f

def sim(self, H, persis_info, sim_specs, libE_info):
Expand Down Expand Up @@ -101,7 +101,7 @@ def __init__(self):
self.real_x = np.arange(0, self.d)[:, None]

def function(self, theta1, theta2):
f = np.array([theta2 - theta1**2, theta2 - theta1])
f = np.array([theta2 - theta1 ** 2, theta2 - theta1])
return f

def sim(self, H, persis_info, sim_specs, libE_info):
Expand Down

0 comments on commit ee2b454

Please sign in to comment.