def generator(inp_z, inp_y, reuse=False): with tf.variable_scope('Generator', reuse=reuse): inp = tf.concat([inp_z, inp_y], 1) sz = 4 g1 = linear(inp, 512 * sz * sz, name=gname + 'deconv1') g1 = batchnorm(g1, is_training=tf.constant(True), name=gname + 'bn1g') g1 = lrelu(g1, 0.2) g1_reshaped = tf.reshape(g1, [-1, 512, sz, sz]) print 'genreshape: ' + str(g1_reshaped.get_shape().as_list()) g2 = nnupsampling(g1_reshaped, [8, 8]) g2 = conv2d(g2, nout=512, kernel=3, name=gname + 'deconv2') g2 = batchnorm(g2, is_training=tf.constant(True), name=gname + 'bn2g') g2 = lrelu(g2, 0.2) g3 = nnupsampling(g2, [16, 16]) g3 = conv2d(g3, nout=256, kernel=3, name=gname + 'deconv3') g3 = batchnorm(g3, is_training=tf.constant(True), name=gname + 'bn3g') g3 = lrelu(g3, 0.2) g4 = nnupsampling(g3, [32, 32]) g4 = conv2d(g4, nout=128, kernel=3, name=gname + 'deconv4') g4 = batchnorm(g4, is_training=tf.constant(True), name=gname + 'bn4g') g4 = lrelu(g4, 0.2) g4b = conv2d(g4, nout=128, kernel=3, name=gname + 'deconv4b') g4b = batchnorm(g4b, is_training=tf.constant(True), name=gname + 'bn4bg') g4b = lrelu(g4b, 0.2) g5 = nnupsampling(g4b, [64, 64]) g5 = conv2d(g5, nout=64, kernel=3, name=gname + 'deconv5') g5 = batchnorm(g5, is_training=tf.constant(True), name=gname + 'bn5g') g5 = lrelu(g5, 0.2) g5b = conv2d(g5, nout=64, kernel=3, name=gname + 'deconv5b') g5b = batchnorm(g5b, is_training=tf.constant(True), name=gname + 'bn5bg') g5b = lrelu(g5b, 0.2) g6 = nnupsampling(g5b, [128, 128]) g6 = conv2d(g6, nout=32, kernel=3, name=gname + 'deconv6') g6 = batchnorm(g6, is_training=tf.constant(True), name=gname + 'bn6g') g6 = lrelu(g6, 0.2) g6b = conv2d(g6, nout=3, kernel=3, name=gname + 'deconv6b') g6b = tf.nn.tanh(g6b) g6b_64 = pool(g6b, fsize=3, strides=2, op='avg') return g6b_64, g6b
def generator(inp_z, inp_y): with tf.variable_scope('Generator'): inp = tf.concat([inp_z, inp_y], 1) g1 = linear(inp, 512 * 4 * 4, name=gname + 'deconv1') g1 = batchnorm(g1, is_training=tf.constant(True), name=gname + 'bn1g') g1 = lrelu(g1, 0.2) g1_reshaped = tf.reshape(g1, [-1, 512, 4, 4]) print 'genreshape: ' + str(g1_reshaped.get_shape().as_list()) g2 = nnupsampling(g1_reshaped, [8, 8]) g2 = conv2d(g2, nout=256, kernel=3, name=gname + 'deconv2') g2 = batchnorm(g2, is_training=tf.constant(True), name=gname + 'bn2g') g2 = lrelu(g2, 0.2) g3 = nnupsampling(g2, [16, 16]) g3 = conv2d(g3, nout=128, kernel=3, name=gname + 'deconv3') g3 = batchnorm(g3, is_training=tf.constant(True), name=gname + 'bn3g') g3 = lrelu(g3, 0.2) g3b = conv2d(g3, nout=128, kernel=3, name=gname + 'deconv3b') g3b = batchnorm(g3b, is_training=tf.constant(True), name=gname + 'bn3bg') g3b = lrelu(g3b, 0.2) g4 = nnupsampling(g3b, [32, 32]) g4 = conv2d(g4, nout=64, kernel=3, name=gname + 'deconv4') g4 = batchnorm(g4, is_training=tf.constant(True), name=gname + 'bn4g') g4 = lrelu(g4, 0.2) g4b = conv2d(g4, nout=64, kernel=3, name=gname + 'deconv4b') g4b = batchnorm(g4b, is_training=tf.constant(True), name=gname + 'bn4bg') g4b = lrelu(g4b, 0.2) g5 = nnupsampling(g4b, [64, 64]) g5 = conv2d(g5, nout=32, kernel=3, name=gname + 'deconv5') g5 = batchnorm(g5, is_training=tf.constant(True), name=gname + 'bn5g') g5 = lrelu(g5, 0.2) g5b = conv2d(g5, nout=3, kernel=3, name=gname + 'deconv5b') g5b = tf.nn.tanh(g5b) g5b_32 = pool(g5b, fsize=3, strides=2, op='avg', pad='SAME') return g5b_32, g5b