Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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
Пример #4
0
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
Пример #5
0
    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