def generator(observed, n, n_z, is_training):
with zs.BayesianNet(observed=observed) as generator:
ngf = 64
z_min = -tf.ones([n, n_z])
z_max = tf.ones([n, n_z])
z = zs.Uniform('z', z_min, z_max)
lx_z = tf.layers.dense(z, ngf * 8 * 4 * 4, use_bias=False)
lx_z = tf.layers.batch_normalization(lx_z, training=is_training)
lx_z = tf.nn.relu(lx_z)
lx_z = tf.reshape(lx_z, [-1, 4, 4, ngf * 8])
lx_z = tf.layers.conv2d_transpose(lx_z, ngf * 4, 5, strides=(2, 2),
padding='same', use_bias=False)
lx_z = tf.layers.batch_normalization(lx_z, training=is_training)
lx_z = tf.nn.relu(lx_z)
lx_z = tf.layers.conv2d_transpose(lx_z, ngf * 2, 5, strides=(2, 2),
padding='same', use_bias=False)
lx_z = tf.layers.batch_normalization(lx_z, training=is_training)
lx_z = tf.nn.relu(lx_z)
lx_z = tf.layers.conv2d_transpose(lx_z, 3, 5, strides=(2, 2),
padding='same', activation=tf.sigmoid)
return generator, lx_z
评论列表
文章目录