示例#1
0
    def __init__(self, x):
        conv1 = layers.conv2d(x,
                              64, [7, 7],
                              stride=2,
                              scope='conv1',
                              activation_fn=tf.nn.relu)
        pool1 = layers.max_pool2d(conv1, [3, 3], scope='pool1')
        pool1_lrn = tf.nn.local_response_normalization(pool1,
                                                       name='pool1_lrn',
                                                       alpha=0.0001,
                                                       beta=0.75)
        conv2_reduce = layers.conv2d(pool1_lrn,
                                     64, [1, 1],
                                     scope='conv2_reduce',
                                     activation_fn=tf.nn.relu)
        conv2 = layers.conv2d(conv2_reduce,
                              192, [3, 3],
                              scope='conv2',
                              activation_fn=tf.nn.relu)
        conv2_lrn = tf.nn.local_response_normalization(conv2,
                                                       name='pool1_lrn',
                                                       alpha=0.0001,
                                                       beta=0.75)
        pool2 = layers.max_pool2d(conv2_lrn, [3, 3], scope='pool2')

        with tf.variable_scope('inception_3a'):
            inception_3a = inception(pool2, 64, 96, 128, 16, 32, 32)

        with tf.variable_scope('inception_3b'):
            inception_3b = inception(inception_3a, 128, 128, 192, 32, 96, 64)
            pool3 = layers.max_pool2d(inception_3b, [3, 3], scope='pool3')
        '''
        with tf.variable_scope('inception_4a'):
            conv11 = layers.conv2d(pool3, 192, [1, 1], activation_fn=tf.nn.relu)

            conv33_reduce = layers.conv2d(pool3, 96, [1, 1], activation_fn=tf.nn.relu)
            conv33_reduce_param = layers.conv2d(conv33_reduce, 32, [1, 1], activation_fn=tf.nn.relu)
            conv33_reduce_param2 = layers.conv2d(conv33_reduce_param, 32, [1, 1],
                                                 activation_fn=tf.nn.relu)
            conv33_reduce_param3 = layers.conv2d(conv33_reduce_param2, 6, [1, 1])
            conv33_spatial_transfo = conv_spatial_transfo(conv33_reduce, conv33_reduce_param3, 3)
            conv33 = layers.conv2d(conv33_spatial_transfo, 208, [3, 3], stride=3)

            conv55_reduce = layers.conv2d(pool3, 16, [1, 1], activation_fn=tf.nn.relu)
            conv55_reduce_param = layers.conv2d(conv55_reduce, 32, [1, 1], activation_fn=tf.nn.relu)
            conv55_reduce_param2 = layers.conv2d(conv55_reduce_param, 32, [1, 1],
                                                 activation_fn=tf.nn.relu)
            conv55_reduce_param3 = layers.conv2d(conv55_reduce_param2, 6, [1, 1])
            conv55_spatial_transfo = conv_spatial_transfo(conv55_reduce, conv55_reduce_param3, 5)
            conv55 = layers.conv2d(conv55_spatial_transfo, 48, [5, 5], stride=5)

            pool_proj = layers.max_pool2d(pool3, [3, 3], stride=1, padding='SAME')
            pool11 = layers.conv2d(pool_proj, 64, [1, 1])

            inception4a = tf.concat([conv11, conv33, conv55, pool11], 3)
        '''
        feature_unnorm = layers.conv2d(pool3,
                                       128, [1, 1],
                                       scope='feature_unnorm')
        self.feature = tf.nn.l2_normalize(feature_unnorm, dim=3)
示例#2
0
def create_model(opt):
    """Create neural network model, defining layer architecture."""
    dim_y = int((opt['crop_max_y'] - opt['crop_min_y']) / opt['scale_factor'])
    dim_x = int((opt['crop_max_x'] - opt['crop_min_x']) / opt['scale_factor'])

    inputs = Input(shape=(dim_y, dim_x, 3))

    conv_1_1 = inception(inputs, 64)
    conv_1_2 = inception(conv_1_1, 64)

    pool_1 = MaxPooling2D()(conv_1_2)

    conv_2_1 = inception(pool_1, 128)
    conv_2_2 = inception(conv_2_1, 128)

    pool_2 = MaxPooling2D()(conv_2_2)

    conv_3_1 = inception(pool_2, 128)
    conv_3_2 = inception(conv_3_1, 128)
    conv_3_3 = inception(conv_3_2, 128)

    pool_3 = MaxPooling2D()(conv_3_3)

    conv_4_1 = inception(pool_3, 256)
    conv_4_2 = inception(conv_4_1, 256)
    conv_4_3 = inception(conv_4_2, 256)

    pool_4 = MaxPooling2D()(conv_4_3)

    conv_5_1 = inception(pool_4, 256)
    conv_5_2 = inception(conv_5_1, 256)
    conv_5_3 = inception(conv_5_2, 256)
    conv_5_4 = inception(conv_5_3, 256)
    conv_5_5 = inception(conv_5_4, 256)
    conv_5_6 = inception(conv_5_5, 256)

    unpool_4 = UpSampling2D()(conv_5_6)
    unpool_4 = Concatenate()([unpool_4, conv_4_3])  # skip layer

    decode_4_1 = inception(unpool_4, 256)
    decode_4_2 = inception(decode_4_1, 256)
    decode_4_3 = inception(decode_4_2, 128)

    unpool_3 = UpSampling2D()(decode_4_3)
    unpool_3 = Concatenate()([unpool_3, conv_3_3])  # skip layer

    decode_3_1 = inception(unpool_3, 128)
    decode_3_2 = inception(decode_3_1, 128)
    decode_3_3 = inception(decode_3_2, 128)

    unpool_2 = UpSampling2D()(decode_3_3)
    unpool_2 = Concatenate()([unpool_2, conv_2_2])  # skip layer

    decode_2_1 = inception(unpool_2, 128)
    decode_2_2 = inception(decode_2_1, 64)

    unpool_1 = UpSampling2D()(decode_2_2)
    unpool_1 = Concatenate()([unpool_1, conv_1_2])  # skip layer

    decode_1_1 = inception(unpool_1, 64)

    final_layer = Conv2D(1, 3, padding='same',
                         kernel_regularizer=l2(0.01))(decode_1_1)
    final_layer = Activation('sigmoid')(final_layer)
    final_layer = Reshape((dim_y, dim_x))(final_layer)

    model = Model(inputs=inputs, outputs=final_layer, name="Road")

    return model