def generator(self, z, reuse=False): with tf.variable_scope('generator', reuse=reuse): layer = Stacker(z) layer.add_layer(linear, 7 * 7 * 128) layer.reshape([self.batch_size, 7, 7, 128]) layer.upscale_2x_block(256, CONV_FILTER_5522, relu) layer.conv2d_transpose(self.Xs_shape, CONV_FILTER_5522) layer.conv2d(self.input_c, CONV_FILTER_3311) layer.sigmoid() return layer.last_layer
def discriminator(self, x, reuse=None, name='discriminator'): with tf.variable_scope(name, reuse=reuse): layer = Stacker(x) layer.add_layer(conv2d, 64, CONV_FILTER_5522) layer.add_layer(bn) layer.add_layer(lrelu) layer.add_layer(conv2d, 128, CONV_FILTER_5522) layer.add_layer(bn) layer.add_layer(lrelu) layer.add_layer(conv2d, 256, CONV_FILTER_5522) layer.add_layer(bn) layer.add_layer(lrelu) layer.add_layer(conv2d, 256, CONV_FILTER_5522) layer.add_layer(bn) layer.add_layer(lrelu) layer.add_layer(tf.reshape, [self.batch_size, -1]) out_logit = layer.add_layer(linear, 1) out = layer.add_layer(tf.sigmoid) return out, out_logit
def generator(self, z, reuse=False, name='generator'): with tf.variable_scope(name, reuse=reuse): layer = Stacker(z) layer.add_layer(linear, 4 * 4 * 512) layer.add_layer(tf.reshape, [self.batch_size, 4, 4, 512]) layer.add_layer(conv2d_transpose, [self.batch_size, 8, 8, 256], CONV_FILTER_7722) layer.add_layer(bn) layer.add_layer(relu) layer.add_layer(conv2d_transpose, [self.batch_size, 16, 16, 128], CONV_FILTER_7722) layer.add_layer(bn) layer.add_layer(relu) layer.add_layer(conv2d_transpose, [self.batch_size, 32, 32, self.input_c], CONV_FILTER_7722) layer.add_layer(conv2d, self.input_c, CONV_FILTER_5511) layer.add_layer(tf.sigmoid) net = layer.last_layer return net
def inception_layer(input_, channel_size, name='inception_layer'): with tf.variable_scope(name): with tf.variable_scope('out1'): layer = Stacker(input_) layer.add_layer(avg_pooling, CONV_FILTER_2211) out1 = layer.last_layer with tf.variable_scope('out2'): layer = Stacker(input_) layer.add_layer(conv_block, channel_size, CONV_FILTER_5511, lrelu) out2 = layer.last_layer with tf.variable_scope('out3'): layer = Stacker(input_) layer.add_layer(conv_block, channel_size, CONV_FILTER_5511, lrelu) layer.add_layer(conv_block, channel_size, CONV_FILTER_5511, relu) out3 = layer.last_layer with tf.variable_scope('out4'): layer = Stacker(input_) layer.add_layer(conv_block, channel_size, CONV_FILTER_5511, lrelu) layer.add_layer(conv_block, channel_size, CONV_FILTER_5511, lrelu) layer.add_layer(conv_block, channel_size, CONV_FILTER_5511, lrelu) out4 = layer.last_layer out = tf.concat([out1, out2 + out3 + out4], 3) return out
def CNN(self, input_): with tf.variable_scope('classifier'): layer = Stacker(input_, name='seq1') layer.add_layer(conv_block, 64, CONV_FILTER_5522, lrelu) size16 = layer.last_layer layer.add_layer(inception_layer, 32) layer.add_layer(inception_layer, 64) layer.add_layer(inception_layer, 128) layer.add_layer(tf.reshape, [self.batch_size, -1]) layer2 = Stacker(size16, name='seq2') layer2.add_layer(conv_block, 128, CONV_FILTER_5522, lrelu) size8 = layer2.last_layer layer2.add_layer(inception_layer, 64) layer2.add_layer(inception_layer, 128) layer2.add_layer(inception_layer, 256) layer2.add_layer(tf.reshape, [self.batch_size, -1]) layer3 = Stacker(size8, name='seq3') layer3.add_layer(conv_block, 256, CONV_FILTER_5522, lrelu) layer3.add_layer(inception_layer, 128) layer3.add_layer(inception_layer, 256) layer3.add_layer(inception_layer, 512) layer3.add_layer(tf.reshape, [self.batch_size, -1]) merge = tf.concat( [layer.last_layer, layer2.last_layer, layer3.last_layer], axis=1) after_merge = Stacker(merge, name='after_merge') after_merge.add_layer(linear, self.label_size) logit = after_merge.last_layer h = softmax(logit) return logit, h