Exemplo n.º 1
0
def decoder(input, quan_scale):
    with tf.variable_scope('reverse_sigmoid_scale'):

        # output = basic_block.reverse_sigmoid(input / 255.0)

        # stable reverse sigmoid
        output = basic_block.reverse_sigmoid(
            (input + 1e-6) / (quan_scale - 1 + 1e-5))

        tf.summary.histogram('reverse_sigmoid_scale_result', output)

    # output = tf.Print(output, [output[5, 20:30, 20, 0]])

    output = basic_block.my_conv2d(
        inputs=output,
        filters=64,
        strides=[1, 1],
        kernel_size=[3, 3],
        padding="SAME",
        activation=tf.identity,
        kernel_initializer=tf.random_normal_initializer(mean=0.0, stddev=0.01),
        bias_initializer=tf.constant_initializer(0.0),
        name='decode_4')

    output = basic_block.res_block(
        inputs=output,
        filters=64,
        strides=[1, 1],
        kernel_size=[3, 3],
        padding="SAME",
        activation=tf.nn.relu,
        kernel_initializer=tf.random_normal_initializer(mean=0.0, stddev=0.01),
        bias_initializer=tf.constant_initializer(0.0),
        name='decode_res_1',
        layer_num=2)

    output = basic_block.res_block(
        inputs=output,
        filters=64,
        strides=[1, 1],
        kernel_size=[3, 3],
        padding="SAME",
        activation=tf.nn.relu,
        kernel_initializer=tf.random_normal_initializer(mean=0.0, stddev=0.01),
        bias_initializer=tf.constant_initializer(0.0),
        name='decode_res_2',
        layer_num=2)

    output = basic_block.my_conv2d_transpose(
        inputs=output,
        filters=64,
        strides=[2, 2],
        kernel_size=[3, 3],
        padding="SAME",
        activation=tf.nn.relu,
        kernel_initializer=tf.random_normal_initializer(mean=0.0, stddev=0.01),
        bias_initializer=tf.constant_initializer(0.0),
        name='decode_3')

    output = basic_block.my_conv2d_transpose(
        inputs=output,
        filters=32,
        strides=[2, 2],
        kernel_size=[3, 3],
        padding="SAME",
        activation=tf.nn.relu,
        kernel_initializer=tf.random_normal_initializer(mean=0.0, stddev=0.01),
        bias_initializer=tf.constant_initializer(0.0),
        name='decode_2')

    # output = tf.Print(output, [output[5, 20:30, 20, 0]])

    output = basic_block.my_conv2d_transpose(
        inputs=output,
        filters=32,
        strides=[2, 2],
        kernel_size=[3, 3],
        padding="SAME",
        activation=tf.nn.relu,
        kernel_initializer=tf.random_normal_initializer(mean=0.0, stddev=0.01),
        bias_initializer=tf.constant_initializer(0.0),
        name='decode_1')

    output = basic_block.my_conv2d_transpose(
        inputs=output,
        filters=3,
        strides=[2, 2],
        kernel_size=[3, 3],
        padding="SAME",
        activation=tf.identity,
        kernel_initializer=tf.random_normal_initializer(mean=0.0, stddev=0.01),
        bias_initializer=tf.constant_initializer(0.0),
        name='decode_0')

    # output = tf.Print(output, [output[5, 20:30, 20, 0]])

    with tf.variable_scope('denormalize'):
        output = output * train_data_std + train_data_mean

        tf.summary.histogram('denormalized_input', output)
        tf.summary.image("recons_image", output, max_outputs=4)

        # To be modified
        # output = tf.clip_by_value(output, 0.0, 1.0)

        output = tf.clip_by_value(output, 0.0, 255.0)

        # output = tf.Print(output, [output[5, 20:30, 20, 0]])

    return output
Exemplo n.º 2
0
def model(input):
    with tf.variable_scope('normalize'):
        output = tf.reshape(input, [-1, patch_size, patch_size, 3])
        output = (output - train_data_mean) / train_data_std

    output = basic_block.my_conv2d(
        inputs=output,
        filters=32,
        strides=[2, 2],
        kernel_size=[3, 3],
        padding="SAME",
        activation=tf.nn.relu,
        kernel_initializer=tf.random_normal_initializer(mean=0.0, stddev=0.01),
        bias_initializer=tf.constant_initializer(0.0),
        name='conv_1')

    output = basic_block.my_conv2d(
        inputs=output,
        filters=64,
        strides=[2, 2],
        kernel_size=[3, 3],
        padding="SAME",
        activation=tf.nn.relu,
        kernel_initializer=tf.random_normal_initializer(mean=0.0, stddev=0.01),
        bias_initializer=tf.constant_initializer(0.0),
        name='conv_2')

    output = basic_block.my_conv2d(
        inputs=output,
        filters=64,
        strides=[1, 1],
        kernel_size=[3, 3],
        padding="SAME",
        activation=tf.nn.relu,
        kernel_initializer=tf.random_normal_initializer(mean=0.0, stddev=0.01),
        bias_initializer=tf.constant_initializer(0.0),
        name='conv_3')

    output = basic_block.my_conv2d(
        inputs=output,
        filters=64,
        strides=[1, 1],
        kernel_size=[3, 3],
        padding="SAME",
        activation=tf.nn.relu,
        kernel_initializer=tf.random_normal_initializer(mean=0.0, stddev=0.01),
        bias_initializer=tf.constant_initializer(0.0),
        name='conv_4')

    output = basic_block.my_conv2d_transpose(
        inputs=output,
        filters=32,
        strides=[2, 2],
        kernel_size=[3, 3],
        padding="SAME",
        activation=tf.nn.relu,
        kernel_initializer=tf.random_normal_initializer(mean=0.0, stddev=0.01),
        bias_initializer=tf.constant_initializer(0.0),
        name='conv_5')

    output = basic_block.my_conv2d_transpose(
        inputs=output,
        filters=3,
        strides=[2, 2],
        kernel_size=[3, 3],
        padding="SAME",
        activation=tf.identity,
        kernel_initializer=tf.random_normal_initializer(mean=0.0, stddev=0.01),
        bias_initializer=tf.constant_initializer(0.0),
        name='conv6')

    with tf.variable_scope('denormalize'):
        output = output * train_data_std + train_data_mean

        output = tf.clip_by_value(output, 0.0, 255.0)

    return output