Пример #1
0
def vae(observed, x_dim, z_dim, n, n_particles=1):
    with zs.BayesianNet(observed=observed) as model:
        z_mean = tf.zeros([n, z_dim])
        z = zs.Normal('z', z_mean, std=1., group_ndims=1, n_samples=n_particles)
        lx_z = tf.layers.dense(z, 500, activation=tf.nn.relu)
        lx_z = tf.layers.dense(lx_z, 500, activation=tf.nn.relu)
        x_logits = tf.layers.dense(lx_z, x_dim)
        x_mean = zs.Implicit("x_mean", tf.sigmoid(x_logits), group_ndims=1)
        x = zs.Bernoulli('x', x_logits, group_ndims=1)
    return model
Пример #2
0
def vae(observed, x_dim, z_dim, n, y):
    with zs.BayesianNet(observed=observed) as model:
        z_mean = tf.zeros([n, z_dim])
        z = zs.Normal('z', z_mean, std=1., group_ndims=1)
        z_plus_y = tf.concat([z, tf.cast(y, tf.float32)], axis=1)
        lx_z = tf.layers.dense(z_plus_y, 500, activation=tf.nn.relu)
        lx_z = tf.layers.dense(lx_z, 500, activation=tf.nn.relu)
        x_logits = tf.layers.dense(lx_z, x_dim)
        x_mean = zs.Implicit("x_mean", tf.sigmoid(x_logits), group_ndims=1)
        x = zs.Bernoulli('x', x_logits, group_ndims=1)
    return model, x_mean
Пример #3
0
def cvae(observed, x_dim, y_dim, z_dim, n, n_particles=1):
    with zs.BayesianNet(observed=observed) as model:
        y = zs.Empirical('y', tf.int32, (n, y_dim))
        z_mean = tf.zeros([n, z_dim])
        z = zs.Normal('z',
                      z_mean,
                      std=1.,
                      group_ndims=1,
                      n_samples=n_particles)
        z = tf.to_float(z[0])
        yz = tf.concat([tf.to_float(y), z], axis=1)
        lx_yz = tf.layers.dense(tf.to_float(yz), 500, activation=tf.nn.relu)
        lx_yz = tf.layers.dense(lx_yz, 500, activation=tf.nn.relu)
        x_logits = tf.layers.dense(lx_yz, x_dim)
        x_mean = zs.Implicit('x_mean', tf.sigmoid(x_logits), group_ndims=1)
        x = zs.Bernoulli('x', logits=x_logits, group_ndims=1)
    return model
Пример #4
0
def vae(observed, x_dim, z_dim, n, n_particles=1):
    with zs.BayesianNet(observed=observed) as model:
        y = zs.OnehotCategorical('y',
                                 logits=tf.ones([n, 10]),
                                 group_ndims=1,
                                 n_samples=n_particles)
        y = tf.to_float(y)
        y = tf.reshape(y, (1, n, 10))
        z_mean = tf.zeros([n, z_dim])
        z = zs.Normal('z',
                      z_mean,
                      std=1.,
                      group_ndims=1,
                      n_samples=n_particles)
        z = tf.concat([z, y], 2)
        lx_z = tf.layers.dense(z, 500, activation=tf.nn.relu)
        lx_z = tf.layers.dense(lx_z, 500, activation=tf.nn.relu)
        x_logits = tf.layers.dense(lx_z, x_dim)
        x_mean = zs.Implicit("x_mean", tf.sigmoid(x_logits), group_ndims=1)
        x = zs.Bernoulli('x', x_logits, group_ndims=1)
    return model