'/home/samuel/Documents/projects/seq posterior approx w nf/seq posterior approx w nf dev/lotka_volterra' ) sys.path.append('./') print(os.getcwd()) id_job = str(seed) + '_' + str(seed_data) # Load all utility functions for all methods import LotkaVolterra import functions as func # Set model and generate data x_o, model, theta_true = func.set_up_model() m_s_of_prior, s_s_of_prior = func.load_summary_stats_mean_and_std() # set up simulator def simulator(theta): s_of_theta = model.model_sim(theta) return func.normalize_summary_stats(s_of_theta, m_s_of_prior, s_s_of_prior) s_x_o = LotkaVolterra.calc_summary_stats( x_o.reshape(1, x_o.shape[0], x_o.shape[1])) s_x_o = func.normalize_summary_stats(s_x_o, m_s_of_prior, s_s_of_prior) # %%
id_job = str(dim) + '_' + str(seed) + '_' + str(seed_data) if hp_tuning > 0: id_job = id_job + "_" + str(hp_tuning) import functions as func print(hp_tuning) print(func.sample_hp("snl", hp_tuning)) print(torch.rand(1)) print(func.sample_hp("snl", hp_tuning)[0].item()) print(torch.rand(1)) prior = BoxUniform(low=-2 * torch.ones(2), high=2 * torch.ones(2)) x_o, model = func.set_up_model(prior) def simulator(theta): return torch.from_numpy( model.gen_single(theta)).to(dtype=torch.float32).reshape(1, 2) # check simulator and prior simulator, prior = prepare_for_sbi(simulator, model.prior) # function that builds the network def build_custom_like_net(batch_theta, batch_x): flow_lik, flow_post = func.set_up_networks(seed)
id_job = id_job + "_" + str(lambda_val) import LotkaVolterra import functions as func # Set model and generate data if lunarc == 1: sys.path.append('/home/samwiq/snpla/seq-posterior-approx-w-nf-dev/algorithms') import snpla as snpla else: sys.path.append( '/home/samuel/Documents/projects/seq posterior approx w nf/seq posterior approx w nf dev/algorithms') import snpla as snpla # Set model and generate data x_o, model, theta_true = func.set_up_model(method="snpla") m_s_of_prior, s_s_of_prior = func.load_summary_stats_mean_and_std() s_x_o = LotkaVolterra.calc_summary_stats(x_o.reshape(1, x_o.shape[0], x_o.shape[1])) s_x_o = func.normalize_summary_stats(s_x_o, m_s_of_prior, s_s_of_prior) # set up simulator def simulator(theta): s_of_theta = model.model_sim(theta, True) return func.normalize_summary_stats(s_of_theta, m_s_of_prior, s_s_of_prior) hyper_params = [0.001, 0.001, 0.9, 0.9] # lr_like, lr_post, gamma_post, gamma