def build_wgan_global_discriminator(self, x, reuse=False, training=True): with tf.variable_scope('discriminator_global', reuse=reuse): cnum = 64 x = dis_conv(x, cnum, name='conv1', training=training) x = dis_conv(x, cnum*2, name='conv2', training=training) x = dis_conv(x, cnum*4, name='conv3', training=training) x = dis_conv(x, cnum*4, name='conv4', training=training) x = flatten(x, name='flatten') return x
def build_wgan_local_discriminator(self, x, reuse=False, training=True): with tf.variable_scope('discriminator_local', reuse=reuse): cnum = 64 x = dis_conv(x, cnum, name='conv1', training=training) x = dis_conv(x, cnum * 2, name='conv2', training=training) x = dis_conv(x, cnum * 4, name='conv3', training=training) x = dis_conv(x, cnum * 8, name='conv4', training=training) # 32x16x16x512 return x
def build_wgan_global_discriminator_verbose(self, x, reuse=False, training=True): with tf.variable_scope('discriminator_global', reuse=reuse): cnum = 64 x1 = dis_conv(x, cnum, name='conv1', training=training) x2 = dis_conv(x1, cnum * 2, name='conv2', training=training) x3 = dis_conv(x2, cnum * 4, name='conv3', training=training) x4 = dis_conv(x3, cnum * 4, name='conv4', training=training) x5 = flatten(x4, name='flatten') return x1, x2, x3, x4, x5
def build_wgan_global_discriminator(self, x, reuse=False, training=True): with tf.variable_scope('discriminator_global', reuse=reuse): cnum = 64 x = dis_conv(x, cnum, name='conv1', training=training) x = dis_conv(x, cnum * 2, name='conv2', training=training) x = dis_conv(x, cnum * 4, name='conv3', training=training) x = dis_conv(x, cnum * 4, name='conv4', training=training) # 32x16x16x256 # remove flatten layer to make it like PatchGAN # x = flatten(x, name='flatten') # channel=1, kernel=5, stride=1 x = tf.layers.conv2d(x, 1, 5, 1, 'SAME', name='patch') x = tf.sigmoid(x, name='patch_sigmoid') return x
def build_sn_patch_gan_discriminator(self, x, reuse=False, training=True): with tf.compat.v1.variable_scope('sn_patch_gan', reuse=reuse): cnum = 64 x = dis_conv(x, cnum, name='conv1', training=training) x = dis_conv(x, cnum*2, name='conv2', training=training) x = dis_conv(x, cnum*4, name='conv3', training=training) x = dis_conv(x, cnum*4, name='conv4', training=training) x = dis_conv(x, cnum*4, name='conv5', training=training) x = dis_conv(x, cnum*4, name='conv6', training=training) x = flatten(x, name='flatten') return x
def build_SNGAN_discriminator(self, x, batch_size=32, reuse=False, training=True): with tf.variable_scope('discriminator', reuse=reuse): cnum = 64 x = dis_conv(x, cnum, name='conv1', training=training) x = dis_conv(x, 2 * cnum, name='conv2', training=training) x = dis_conv(x, 4 * cnum, name='conv3', training=training) x = dis_conv(x, 4 * cnum, name='conv4', training=training) x = dis_conv(x, 4 * cnum, name='conv5', training=training) x = dis_conv(x, 4 * cnum, name='conv6', training=training) return x