Example #1
0
prior_max = np.array([2, 2, 2])
prior_unif = Uniform(lower=prior_min, upper=prior_max)

# Summary Statistics
S = syn_obs_stats(x_o['I'],
                  params=params,
                  dt=x_o['dt'],
                  t_on=t_on,
                  t_off=t_off,
                  n_summary=n_summary,
                  summary_stats=2,
                  data=x_o)

M = DAPSimulator(x_o['I'], x_o['dt'], -75)
s = DAPSummaryStatsMoments(t_on, t_off, n_summary=n_summary)
G = Default(model=M, prior=prior_unif, summary=s)  # Generator

print('S', S)
print('G', G.gen(1))

S = np.array([S, S])

# Runing the simulation
inf_snpe = SNPE(generator=G,
                n_components=n_components,
                n_hiddens=n_hiddens,
                obs=S,
                reg_lambda=reg_lambda,
                pilot_samples=0)

logs, tds, posteriors = inf_snpe.run(n_train=[n_samples],
Example #2
0
xo_stats = np.load(
    'results/31D_experimental/190807_summstats_prep845_082_0044.npz'
)['summ_stats']
obs = xo_stats

################################################################################
#                               Define ss and g                                #
################################################################################

# Using the 'PrinzStats' here, defined in summstats.py. Inferring the summstats
# only between t_burnin and t_burnin+t_window. There are 15 stats.
s = netio.create_summstats(params)

# create the generator object
g = Default(model=mlist[0], prior=prior_norm, summary=s)

################################################################################
#                                Run inference                                 #
################################################################################

from delfi.inference import APT

# create inference object
inf_SNPE = APT(generator=g,
               prior_norm=False,
               n_hiddens=params.n_hiddens,
               pilot_samples=pilot_data,
               obs=obs,
               verbose=False,
               density=params.density_type,
Example #3
0
params, labels = obs_params(reduced_model=True)

# Summary Statistics
S = syn_obs_stats(x_o['I'],
                  params=params,
                  dt=x_o['dt'],
                  t_on=t_on,
                  t_off=t_off,
                  n_summary=n_summary,
                  summary_stats=1,
                  data=x_o)

M = DAPSimulator(x_o['I'], x_o['dt'], -75)
s = DAPSummaryStats(t_on, t_off, n_summary=n_summary)
G = Default(model=M, prior=prior_unif, summary=s)  # Generator

# Runing the simulation
# inf_snpe = SNPE(generator=G, n_components=n_components, n_hiddens=n_hiddens, obs=S,
#                 pilot_samples=10, prior_norm=True)

inf_snpe = SNPE(generator=G,
                n_components=n_components,
                n_hiddens=n_hiddens,
                obs=S,
                pilot_samples=10,
                prior_norm=True)

logs, tds, posteriors = inf_snpe.run(n_train=[n_samples],
                                     n_rounds=n_rounds,
                                     proposal=prior_unif,
Example #4
0
# Setup Priors
prior_min, prior_max, labels = load_prior_ranges(n_params)
prior_unif = Uniform(lower=prior_min, upper=prior_max)
print(prior_min, prior_max, labels)

# Summary Statistics
# calcualte summary statistics
sum_stats_step = DAPSummaryStatsStepMoments(t_on_step, t_off_step, n_summary=17)
sum_stats_mom = DAPSummaryStatsMoments(t_on, t_off, n_summary=17)

s_step = sum_stats_step.calc([x_step])
s_ramp = sum_stats_mom.calc([x_o])
dap1 = DAPSimulatorMultiProtocol(I_all, dt_all, -75)


G = Default(model=dap1, prior=prior_unif, summary=sum_stats_step)  # Generator

# Runing the simulation
inf_snpe = SNPE(generator=G, n_components=n_components, n_hiddens=n_hiddens, obs=s_step,
                reg_lambda=reg_lambda, pilot_samples=0)

logs, tds, posteriors = inf_snpe.run(n_train=[n_samples], n_rounds=n_rounds,
                                     proposal=prior_unif, monitor=observables)


# Analyse results
samples_prior = prior_unif.gen(n_samples=int(5e5))
samples_posterior = posteriors[-1].gen(n_samples=int(5e5))

print('posterior:', posteriors[-1].mean)
Example #5
0
                  data=x_o)

M = DAPSimulator(x_o['I'], x_o['dt'], -75)

if summary_stats_type == 0:
    s = DAPSummaryStats(t_on, t_off, n_summary=n_summary)
elif summary_stats_type == 1:
    s = DAPSummaryStatsA(t_on, t_off, n_summary=n_summary)
elif summary_stats_type == 2:
    s = DAPSummaryStatsNoAP(t_on, t_off, n_summary=n_summary)
else:
    raise ValueError('Only 0, 1, 2 as an option for summary statistics.')

sum_stats = DAPSummaryStatsA(t_on, t_off, n_summary=8)

G = Default(model=M, prior=prior, summary=sum_stats)  # Generator

# Runing the simulation
inf_snpe = SNPE(generator=G,
                n_components=2,
                n_hiddens=[2],
                obs=S,
                pilot_samples=10)

logs, tds, posteriors = inf_snpe.run(n_train=[n_samples],
                                     n_rounds=n_rounds,
                                     monitor=observables)

# Analyse results
print('prior mean, std', prior.mean, prior.std)
print('posterior mean, std', posteriors[-1].mean, posteriors[-1].std)