Esempio n. 1
0
z_vec = np.zeros((M,d))
r_vec = np.zeros((M,d))
v_vec = np.zeros((M,d))
h_vec = np.zeros((M,d))

if train_weights == True:
    Wz, Uz, bz = update.extract_W_weights(Wz_mu_prior, d, ud)
    Wr, Ur, br = update.extract_W_weights(Wr_mu_prior, d, ud)
    Wp, Up, bp = update.extract_W_weights(Wp_mu_prior, d, ud)


for i in range(0,M):
    h = h0
    for t in range(0,T_check):
        z, r, v, h, y = gen.stoch_GRU_step(np.diag(1/inv_var), h, u[t,:,0],
                                       Wz, Uz, bz.reshape(d),
                                       Wr, Ur, br.reshape(d),
                                       Wp, Up, bp.reshape(d), 0, 0)

    z_vec[i,:] = z
    r_vec[i,:] = r
    v_vec[i,:] = v
    h_vec[i,:] = h



#plt.plot(x, mix_pdf, 'r', label='pdf')
plt.hist(h_samples_vec[:,d_check].reshape(N-N_burn-1), bins=100, density=True)
plt.hist(h_vec[:,d_check], bins=100, histtype='step',color='r', density=True, label='prior')
plt.xlabel('h_t')
plt.ylabel('P(h_t|h_{t-1})')
plt.title('Gen: T={}, T_check={}, d_check={}, N={}, Var={}'.format(
Esempio n. 2
0
Wpy, Upy, bpy = update.extract_W_weights(Wp_bar_true, d, ud)
Wyy, _, byy = update.extract_W_weights(Wy_bar_true, d, 0)
#Wyy, _, byy = update.extract_W_weights(Wy_mu_prior, d, 0)
'''
Wzy, Uzy, bzy = update.extract_W_weights(Wz_mu_prior, d, ud)
Wry, Ury, bry = update.extract_W_weights(Wr_mu_prior, d, ud)
Wpy, Upy, bpy = update.extract_W_weights(Wp_mu_prior, d, ud)
Wyy, _, byy = update.extract_W_weights(Wy_mu_prior, d, 0)
'''

for i in range(0, M):
    h = h0
    for t in range(0, T):
        z, r, v, h, y = gen.stoch_GRU_step(np.diag(1 / inv_var), h, u[t, :, 0],
                                           Wzy, Uzy, bzy.reshape(d), Wry, Ury,
                                           bry.reshape(d), Wpy, Upy,
                                           bpy.reshape(d), Sigma_y, Wyy,
                                           byy.reshape(yd))
        y_vec[t, :, 0] += y

y = y_vec / M

###############################################

#Initialize h
h = np.zeros((T + 1, d, 1))
h[0, :, 0] = h0
Er = np.zeros((T, d, 1))
Ez = np.zeros((T, d, 1))
for i in range(1, T + 1):
    #TESTING
Esempio n. 3
0
Wz_bar, Wz, Uz, bz, Wz_mu_prior = update.init_weights(L, U, Sigma_theta, d, ud)
Wr_bar, Wr, Ur, br, Wr_mu_prior = update.init_weights(L, U, Sigma_theta, d, ud)
Wp_bar, Wp, Up, bp, Wp_mu_prior = update.init_weights(L, U, Sigma_theta, d, ud)

Wy_bar, Wy, _, by, Wy_mu_prior = update.init_weights(L, U, Sigma_y_theta, d, 0)

train_weights = True

#Initialize h
h = np.zeros((T + 1, d, 1))
h[0, :, 0] = h0
r = np.zeros((T, d, 1))
z = np.zeros((T, d, 1))
for j in range(0, T):
    zt, rt, _, ht, _ = gen.stoch_GRU_step(np.diag(1 / inv_var), h0, u[j, :, 0],
                                          Wz, Uz, bz.reshape(d), Wr, Ur,
                                          br.reshape(d), Wp, Up, bp.reshape(d),
                                          Sigma_y, Wy, by.reshape(yd))
    r[j, :, 0] = rt
    z[j, :, 0] = zt
    h[j + 1, :, 0] = ht

rh = np.zeros((T + 1, d, 1))

#Loop parameters
N = 10000
M = 1000  #number of test samples
N_burn = int(.4 * N)
T_check = -1
d_check = 0

h_samples, z_samples, r_samples, v_samples, Wz_bar_samples, Wr_bar_samples, Wp_bar_samples, Wy_bar_samples, h_samples_vec, Wz_bar_samples_vec, Wr_bar_samples_vec, Wp_bar_samples_vec, Wy_bar_samples_vec = loop.gibbs_loop(