def shallow2(inpt, inpt_size, is_training):
    '''
        18-ticnn
    '''
    end_points = {}
    keep_prob = tf.cond(is_training, lambda: tf.constant(0.5),
                        lambda: tf.constant(1.0))
    with tf.name_scope('reshape'):
        x_image = tf.reshape(inpt, [-1, inpt_size, 1, 1])

    ## first conv-----------------------------
    num_feature = 16
    out = tu.add_conv1d_layer(x_image,
                              num_feature,
                              9,
                              2,
                              is_training=is_training,
                              layer_name='conv1')
    end_points['conv1'] = out
    out = tu.batch_normalization(out, is_training=is_training)
    out = tu.max_pool(out, ksize=4, stride=2, layer_name='pool1')
    end_points['pool1'] = out
    tu.print_activations(out)

    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              2,
                              is_training=is_training,
                              layer_name='conv2')
    end_points['conv2'] = out
    out = tu.max_pool(out, ksize=4, stride=2, layer_name='pool2')
    end_points['pool2'] = out
    tu.print_activations(out)

    ## fully connected layers-----------------------------
    with tf.name_scope('fc1'):
        out = tu.add_fc_layer(out,
                              100,
                              relu=True,
                              BN=True,
                              is_training=is_training)  # previously 256 nodes
        out = tf.nn.dropout(out, keep_prob)
    with tf.name_scope('fc2-1'):
        out1 = tu.add_fc_layer(out, 3)

    with tf.name_scope('fc2-2'):
        print(end_points.keys())
        out2 = tu.add_fc_layer(out, 1)

    end_points['class_end'] = out1
    end_points['speed_end'] = out2
    return end_points
def cvgg19_with_pindex(inpt, inpt_size, is_training):

    end_points = {}
    keep_prob = tf.cond(is_training, lambda: tf.constant(0.5),
                        lambda: tf.constant(1.0))
    with tf.name_scope('reshape'):
        x_image = tf.reshape(inpt, [-1, inpt_size, 1, 1])

    ## first conv-----------------------------
    with tf.name_scope('block1'):
        num_feature = 32
        out = tu.add_conv1d_layer(x_image,
                                  num_feature,
                                  9,
                                  2,
                                  BN=False,
                                  layer_name='conv1')
        end_points['conv1'] = out
        out = tu.add_conv1d_layer(out,
                                  num_feature,
                                  9,
                                  2,
                                  BN=False,
                                  layer_name='conv2')
        end_points['conv2'] = out
        out = tu.batch_normalization(out, is_training=is_training)
        out, pool_args = tu.max_pool_with_argmax(out, 4, layer_name='pool1')
        end_points['pool1'] = out
        end_points['pool1_arg'] = pool_args
        tu.print_activations(out)

    ## second conv-----------------------------
    with tf.name_scope('block2'):
        num_feature = num_feature * 2
        out = tu.add_conv1d_layer(out,
                                  num_feature,
                                  9,
                                  BN=False,
                                  layer_name='conv3')
        end_points['conv3'] = out
        out = tu.add_conv1d_layer(out,
                                  num_feature,
                                  9,
                                  is_training=is_training,
                                  layer_name='conv4',
                                  print_activation=True)
        end_points['conv4'] = out
        out, pool_args = tu.max_pool_with_argmax(out, 4, layer_name='pool2')
        end_points['pool2_arg'] = pool_args
        end_points['pool2'] = out
        tu.print_activations(out)

    ## third conv-----------------------------
    with tf.name_scope('block3'):
        num_feature = num_feature * 2
        out = tu.add_conv1d_layer(out,
                                  num_feature,
                                  9,
                                  BN=False,
                                  layer_name='conv6')
        end_points['conv6'] = out
        out = tu.add_conv1d_layer(out,
                                  num_feature,
                                  9,
                                  BN=False,
                                  layer_name='conv7')
        end_points['conv7'] = out
        out = tu.add_conv1d_layer(out,
                                  num_feature,
                                  9,
                                  is_training=is_training,
                                  layer_name='conv8',
                                  print_activation=True)
        end_points['conv8'] = out
        out, pool_args = tu.max_pool_with_argmax(out, 4, layer_name='pool3')
        end_points['pool3_arg'] = pool_args
        end_points['pool3'] = out
        tu.print_activations(out)

    ## forth conv-----------------------------
    with tf.name_scope('block4'):
        out = tu.add_conv1d_layer(out,
                                  num_feature,
                                  9,
                                  BN=False,
                                  layer_name='conv10')
        end_points['conv10'] = out
        out = tu.add_conv1d_layer(out,
                                  num_feature,
                                  9,
                                  BN=False,
                                  layer_name='conv11')
        end_points['conv11'] = out
        out = tu.add_conv1d_layer(out,
                                  num_feature,
                                  9,
                                  is_training=is_training,
                                  layer_name='conv12',
                                  print_activation=True)
        end_points['conv12'] = out
        out, pool_args = tu.max_pool_with_argmax(out, 4, layer_name='pool4')
        end_points['pool4_arg'] = pool_args
        # out = tu.global_average_pool(out)
        end_points['pool4'] = out
        tu.print_activations(out)

    ## fully connected layers-----------------------------
    with tf.name_scope('fc1'):
        out = tu.add_fc_layer(out,
                              256,
                              relu=True,
                              BN=True,
                              is_training=is_training)
        out = tf.nn.dropout(out, keep_prob)
    with tf.name_scope('fc4'):
        out = tu.add_fc_layer(out, 3)

    with tf.name_scope('block8'):
        print(end_points.keys())
        out2 = tu.add_fc_layer(end_points['pool4'],
                               256,
                               relu=True,
                               BN=True,
                               is_training=is_training)
        out2 = tf.nn.dropout(out2, keep_prob)
    with tf.name_scope('block9'):
        out2 = tu.add_fc_layer(out2, 1)

    end_points['class_end'] = out
    end_points['speed_end'] = out2
    return end_points
예제 #3
0
def cvgg19_3(inpt, inpt_size, is_training, num_class=3):

    end_points = {}
    keep_prob = tf.cond(is_training, lambda: tf.constant(0.5),
                        lambda: tf.constant(1.0))
    with tf.name_scope('reshape'):
        x_image = tf.reshape(inpt, [-1, inpt_size, 1, 1])

    ## first conv-----------------------------
    num_feature = 16
    out = tu.add_conv1d_layer(x_image,
                              num_feature,
                              9,
                              2,
                              BN=False,
                              layer_name='conv1')
    end_points['conv1'] = out
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              2,
                              BN=False,
                              layer_name='conv2')
    end_points['conv2'] = out
    out = tu.batch_normalization(out, is_training=is_training)
    out = tu.max_pool(out, ksize=4, layer_name='pool1')
    end_points['pool1'] = out

    tu.print_activations(out)

    ## second conv-----------------------------
    num_feature = num_feature * 2
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              BN=False,
                              layer_name='conv3')
    end_points['conv3'] = out

    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              is_training=is_training,
                              layer_name='conv4',
                              print_activation=True)
    end_points['conv4'] = out
    out = tu.max_pool(out, ksize=4, layer_name='pool2')
    end_points['pool2'] = out
    tu.print_activations(out)

    ## third conv-----------------------------
    num_feature = num_feature * 2
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              BN=False,
                              layer_name='conv6')
    end_points['conv5'] = out
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              BN=False,
                              layer_name='conv7')
    end_points['conv6'] = out
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              is_training=is_training,
                              layer_name='conv8',
                              print_activation=True)
    end_points['conv7'] = out
    out = tu.max_pool(out, ksize=4, layer_name='pool3')
    end_points['pool3'] = out
    tu.print_activations(out)

    ## forth conv-----------------------------
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              BN=False,
                              layer_name='conv10')
    end_points['conv8'] = out
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              BN=False,
                              layer_name='conv11')
    end_points['conv9'] = out
    out1 = tu.add_conv1d_layer(out,
                               num_class,
                               1,
                               is_training=is_training,
                               layer_name='conv10',
                               print_activation=True)
    out2 = tu.add_conv1d_layer(out,
                               1,
                               1,
                               is_training=is_training,
                               layer_name='conv11',
                               print_activation=True)
    end_points['conv10'] = out1
    # out = tu.max_pool(out, ksize=4, layer_name='pool4')
    out1 = tu.global_average_pool(out1)
    out2 = tu.global_average_pool(out2)
    end_points['GAP'] = out1
    tu.print_activations(out1)
    out1 = tf.reshape(out1, [-1, num_class])
    out2 = tf.reshape(out2, [-1, 1])
    print("out1" + str(out1.get_shape().as_list()))
    print("out2" + str(out2.get_shape().as_list()))
    end_points['class_end'] = out1
    end_points['speed_end'] = out2
    return end_points
예제 #4
0
def cvgg19_2(inpt, inpt_size, is_training):

    end_points = {}
    keep_prob = tf.cond(is_training, lambda: tf.constant(0.5),
                        lambda: tf.constant(1.0))
    with tf.name_scope('reshape'):
        x_image = tf.reshape(inpt, [-1, inpt_size, 1, 1])

    ## first conv-----------------------------
    num_feature = 16
    out = tu.add_conv1d_layer(x_image,
                              num_feature,
                              9,
                              2,
                              BN=False,
                              layer_name='conv1')
    end_points['conv1'] = out
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              2,
                              BN=False,
                              layer_name='conv2')
    end_points['conv2'] = out
    out = tu.batch_normalization(out, is_training=is_training)
    out = tu.max_pool(out, ksize=4, layer_name='pool1')
    end_points['pool1'] = out

    tu.print_activations(out)

    ## second conv-----------------------------
    num_feature = num_feature * 2
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              BN=False,
                              layer_name='conv3')
    end_points['conv3'] = out

    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              is_training=is_training,
                              layer_name='conv4',
                              print_activation=True)
    end_points['conv4'] = out
    out = tu.max_pool(out, ksize=4, layer_name='pool2')
    end_points['pool2'] = out
    tu.print_activations(out)

    ## third conv-----------------------------
    num_feature = num_feature * 2
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              BN=False,
                              layer_name='conv6')
    end_points['conv5'] = out
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              BN=False,
                              layer_name='conv7')
    end_points['conv6'] = out
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              is_training=is_training,
                              layer_name='conv8',
                              print_activation=True)
    end_points['conv7'] = out
    out = tu.max_pool(out, ksize=4, layer_name='pool3')
    end_points['pool3'] = out
    tu.print_activations(out)

    ## forth conv-----------------------------
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              BN=False,
                              layer_name='conv10')
    end_points['conv8'] = out
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              BN=False,
                              layer_name='conv11')
    end_points['conv9'] = out
    out = tu.add_conv1d_layer(out,
                              num_feature,
                              9,
                              is_training=is_training,
                              layer_name='conv12',
                              print_activation=True)
    end_points['conv10'] = out
    # out = tu.max_pool(out, ksize=4, layer_name='pool4')
    out = tu.global_average_pool(out)
    end_points['GAP'] = out
    tu.print_activations(out)

    ## fully connected layers-----------------------------
    with tf.name_scope('fc1'):
        out = tu.add_fc_layer(out,
                              256,
                              relu=True,
                              BN=True,
                              is_training=is_training)
        out = tf.nn.dropout(out, keep_prob)
    with tf.name_scope('fc2-1'):
        out1 = tu.add_fc_layer(out, 3)

    with tf.name_scope('fc2-2'):
        out2 = tu.add_fc_layer(out, 1)

    end_points['class_end'] = out1
    end_points['speed_end'] = out2
    return end_points