def discriminator(self, x, name, reuse=None):
with tf.variable_scope(name, reuse=reuse):
with slim.arg_scope([slim.conv2d, slim.fully_connected],
weights_initializer=tf.contrib.layers.variance_scaling_initializer(),
weights_regularizer=slim.l2_regularizer(2e-4)):
with slim.arg_scope([slim.conv2d], padding="SAME", stride=2, kernel_size=4):
net = slim.conv2d(x, self.df_dim)
net = lrelu(net)
mul = 2
for bn in self.d_bn:
net = slim.conv2d(net, self.df_dim * mul)
net = bn(net)
net = lrelu(net)
mul *= 2
net = tf.reshape(net, shape=[-1, 2*2*512])
net = slim.fully_connected(net, 512, activation_fn=lrelu, normalizer_fn=slim.batch_norm)
net = slim.fully_connected(net, 1, activation_fn=tf.nn.sigmoid)
return net # return prob
评论列表
文章目录