Пример #1
0
def extracted_features(input_tensor):
    conv1 = layers.conv_layer('conv1', input_tensor, ksize=[5, 5], depth=128, kstep=[1, 1], padding='SAME')
    pool2 = layers.pool_layer('pool2', conv1, ksize=[2, 2], kstep=[2, 2], padding='SAME', pool_fun=tf.nn.max_pool)
    conv3 = layers.conv_layer('conv3', pool2, ksize=[5, 5], depth=256, kstep=[1, 1], padding='SAME')
    pool4 = layers.pool_layer('pool4', conv3, ksize=[2, 2], kstep=[2, 2], padding='SAME', pool_fun=tf.nn.max_pool)
    conv5 = layers.conv_layer('conv5', pool4, ksize=[5, 5], depth=128, kstep=[1, 1], padding='SAME')
    pool6 = layers.pool_layer('pool6', conv5, ksize=[2, 2], kstep=[2, 2], padding='SAME', pool_fun=tf.nn.max_pool)
    return pool6
Пример #2
0
def image_classify_cnn(input,classnum):
    conv1 = layers.conv_layer('conv1',input,ksize=[5,5],depth=128,kstep=[1,1],padding='SAME')
    pool2 = layers.pool_layer('pool2',conv1,ksize=[2,2],kstep=[2,2],padding='SAME',pool_fun=tf.nn.max_pool)
    conv3 = layers.conv_layer('conv3',pool2,ksize=[5,5],depth=256,kstep=[1,1],padding='SAME')
    pool4 = layers.pool_layer('pool4',conv3,ksize=[2,2],kstep=[2,2],padding='SAME',pool_fun=tf.nn.max_pool)
    conv5 = layers.conv_layer('conv5',pool4,ksize=[5,5],depth=128,kstep=[1,1],padding='SAME')
    pool6 = layers.pool_layer('pool6',conv5,ksize=[2,2],kstep=[2,2],padding='SAME',pool_fun=tf.nn.max_pool)
    input = layers.convert_n_to_2('convert',pool6)
    return image_classify(input,classnum)
Пример #3
0
def reduction_B_block(name, input):
    '''

    :param name:
    :param input:
    :return:
    '''

    with tf.name_scope(name) as scope:
        pool_1b1 = layers.pool_layer(scope + 'pool_1b1',
                                     input,
                                     ksize=[3, 3],
                                     kstep=[2, 2],
                                     padding='VALID',
                                     pool_fun=tf.nn.max_pool)

        conv_1b2 = layers.conv_layer(scope + 'conv_1b2',
                                     input,
                                     ksize=[1, 1],
                                     depth=192,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_2b2 = layers.conv_layer(scope + 'conv_2b2',
                                     conv_1b2,
                                     ksize=[3, 3],
                                     depth=192,
                                     kstep=[2, 2],
                                     padding='VALID')

        conv_3b3 = layers.conv_layer(scope + 'conv_3b3',
                                     input,
                                     ksize=[1, 1],
                                     depth=256,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_4b3 = layers.conv_layer(scope + 'conv_4b3',
                                     conv_3b3,
                                     ksize=[1, 7],
                                     depth=256,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_5b3 = layers.conv_layer(scope + 'conv_5b3',
                                     conv_4b3,
                                     ksize=[7, 1],
                                     depth=320,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_6b3 = layers.conv_layer(scope + 'conv_6b3',
                                     conv_5b3,
                                     ksize=[3, 3],
                                     depth=320,
                                     kstep=[2, 2],
                                     padding='VALID')

        concat_0 = tf.concat(3, [pool_1b1, conv_2b2, conv_6b3],
                             name=scope + 'concat_0')
        return concat_0
Пример #4
0
def stem_block(name, input):
    '''
    inception-v4神经网络的stem模块
    :param name: 该模块的名称
    :param input: 该模块的输入矩阵
    :return:
    '''

    with tf.name_scope(name) as scope:
        conv_1 = layers.conv_layer(scope + 'conv_1',
                                   input,
                                   ksize=[3, 3],
                                   depth=32,
                                   kstep=[2, 2],
                                   padding='VALID')
        conv_2 = layers.conv_layer(scope + 'conv_2',
                                   conv_1,
                                   ksize=[3, 3],
                                   depth=32,
                                   kstep=[1, 1],
                                   padding='VALID')
        conv_3 = layers.conv_layer(scope + 'conv_3',
                                   conv_2,
                                   ksize=[3, 3],
                                   depth=64,
                                   kstep=[1, 1],
                                   padding='SAME')

        pool_1b1 = layers.pool_layer(scope + 'pool_1b1',
                                     conv_3,
                                     ksize=[3, 3],
                                     kstep=[2, 2],
                                     padding='VALID',
                                     pool_fun=tf.nn.max_pool)
        conv_4b2 = layers.conv_layer(scope + 'conv_4b2',
                                     conv_3,
                                     ksize=[3, 3],
                                     depth=96,
                                     kstep=[2, 2],
                                     padding='VALID')
        concat_0 = tf.concat(3, [pool_1b1, conv_4b2], name=scope + 'concat_0')

        conv_5b3 = layers.conv_layer(scope + 'conv_5b3',
                                     concat_0,
                                     ksize=[1, 1],
                                     depth=64,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_6b3 = layers.conv_layer(scope + 'conv_6b3',
                                     conv_5b3,
                                     ksize=[3, 3],
                                     depth=96,
                                     kstep=[1, 1],
                                     padding='VALID')

        conv_7b4 = layers.conv_layer(scope + 'conv_7b4',
                                     concat_0,
                                     ksize=[1, 1],
                                     depth=64,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_8b4 = layers.conv_layer(scope + 'conv_8b4',
                                     conv_7b4,
                                     ksize=[7, 1],
                                     depth=64,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_9b4 = layers.conv_layer(scope + 'conv_9b4',
                                     conv_8b4,
                                     ksize=[1, 7],
                                     depth=64,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_10b4 = layers.conv_layer(scope + 'conv_10b4',
                                      conv_9b4,
                                      ksize=[3, 3],
                                      depth=96,
                                      kstep=[1, 1],
                                      padding='VALID')
        concat_1 = tf.concat(3, [conv_6b3, conv_10b4], name=scope + 'concat_1')

        conv_11b5 = layers.conv_layer(scope + 'conv_11b5',
                                      concat_1,
                                      ksize=[3, 3],
                                      depth=192,
                                      kstep=[1.1],
                                      padding='VALID')
        pool_2b6 = layers.pool_layer(scope + 'pool_2b6',
                                     concat_1,
                                     ksize=[1, 1],
                                     kstep=[2, 2],
                                     padding='VALID',
                                     pool_fun=tf.nn.max_pool)
        concat_2 = tf.concat(3, [conv_11b5, pool_2b6], name=scope + 'concat_2')

        return concat_2
Пример #5
0
def inception_C_block(name, input):
    '''

    :param name:
    :param input:
    :return:
    '''

    with tf.name_scope(name) as scope:
        pool_1b1 = layers.pool_layer(scope + 'pool_1b1',
                                     input,
                                     ksize=[1, 1],
                                     kstep=[1, 1],
                                     padding='SAME',
                                     pool_fun=tf.nn.avg_pool)
        conv_1b1 = layers.conv_layer(scope + 'conv_1b1',
                                     pool_1b1,
                                     ksize=[1, 1],
                                     depth=256,
                                     kstep=[1, 1],
                                     padding='SAME')

        conv_2b2 = layers.conv_layer(scope + 'conv_2b2',
                                     input,
                                     ksize=[1, 1],
                                     depth=256,
                                     kstep=[1, 1],
                                     padding='SAME')

        conv_3b3 = layers.conv_layer(scope + 'conv_3b3',
                                     input,
                                     ksize=[1, 1],
                                     depth=384,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_4b3_1 = layers.conv_layer(scope + 'conv_4b3_1',
                                       conv_3b3,
                                       ksize=[1, 3],
                                       depth=256,
                                       kstep=[1, 1],
                                       padding='SAME')
        conv_5b3_2 = layers.conv_layer(scope + 'conv_5b3_2',
                                       conv_3b3,
                                       ksize=[3, 1],
                                       depth=256,
                                       kstep=[1, 1],
                                       padding='SAME')

        conv_6b4 = layers.conv_layer(scope + 'conv_6b4',
                                     input,
                                     ksize=[1, 1],
                                     depth=384,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_7b4 = layers.conv_layer(scope + 'conv_7b4',
                                     conv_6b4,
                                     ksize=[1, 3],
                                     depth=448,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_8b4 = layers.conv_layer(scope + 'conv_8b4',
                                     conv_7b4,
                                     ksize=[3, 1],
                                     depth=512,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_9b4_1 = layers.conv_layer(scope + 'conv_9b4_1',
                                       conv_8b4,
                                       ksize=[3, 1],
                                       depth=256,
                                       kstep=[1, 1],
                                       padding='SAME')
        conv_10b4_2 = layers.conv_layer(scope + 'conv_10b4_2',
                                        conv_8b4,
                                        ksize=[1, 3],
                                        depth=256,
                                        kstep=[1, 1],
                                        padding='SAME')

        concat_0 = tf.concat(3, [
            conv_1b1, conv_2b2, conv_4b3_1, conv_5b3_2, conv_9b4_1, conv_10b4_2
        ],
                             name=scope + 'concat_0')
        return concat_0
Пример #6
0
def inception_A_block(name, input):
    '''

    :param name:
    :param input:
    :return:
    '''

    with tf.name_scope(name) as scope:
        pool_1b1 = layers.pool_layer(scope + 'pool_1b1',
                                     input,
                                     ksize=[1, 1],
                                     kstep=[1, 1],
                                     padding='SAME',
                                     pool_fun=tf.nn.avg_pool)
        conv_1b1 = layers.conv_layer(scope + 'conv_1b1',
                                     pool_1b1,
                                     ksize=[1, 1],
                                     depth=96,
                                     kstep=[1, 1],
                                     padding='SAME')

        conv_2b2 = layers.conv_layer(scope + 'conv_2b2',
                                     input,
                                     ksize=[1, 1],
                                     depth=96,
                                     kstep=[1, 1],
                                     padding='SAME')

        conv_3b3 = layers.conv_layer(scope + 'conv_3b3',
                                     input,
                                     ksize=[1, 1],
                                     depth=64,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_4b3 = layers.conv_layer(scope + 'conv_4b3',
                                     conv_3b3,
                                     ksize=[3, 3],
                                     depth=96,
                                     kstep=[1, 1],
                                     padding='SAME')

        conv_5b4 = layers.conv_layer(scope + 'conv_5b4',
                                     input,
                                     ksize=[1, 1],
                                     depth=64,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_6b4 = layers.conv_layer(scope + "conv_6b4",
                                     conv_5b4,
                                     ksize=[3, 3],
                                     depth=96,
                                     kstep=[1, 1],
                                     padding='SAME')
        conv_7b4 = layers.conv_layer(scope + 'conv_7b4',
                                     conv_6b4,
                                     ksize=[3, 3],
                                     depth=96,
                                     kstep=[1, 1],
                                     padding='SAME')

        concat_0 = tf.concat(3, [conv_1b1, conv_2b2, conv_4b3, conv_7b4],
                             name=scope + 'concat_0')

        return concat_0