Esempio n. 1
0
    def fc_layers(self):
        # def FC_layer(layer_name, x, out_nodes):
        images = FC_layer('fc6', self.convs_output, 4096, regularizer=self.regularizer, dropout=True)
        images = batch_norm(images)
        images = FC_layer('fc7', images, 4096, regularizer=self.regularizer, dropout=True)
        images = batch_norm(images)
        self.feature = images
        images = FC_layer('fc8', images, self.classesnumber, regularizer=self.regularizer)

        self.fcs_output = images
Esempio n. 2
0
 def fc_layers(self):
     # def FC_layer(layer_name, x, out_nodes):
     images = FC_layer('fc6', self.convs_output, 4096, regularizer=self.regularizer, dropout=True)
     images = batch_norm(images)
     images = FC_layer('fc7', images, 4096, regularizer=self.regularizer, dropout=True)
     images = batch_norm(images)
     images = FC_layer('fc8', images, 256, regularizer=self.regularizer, dropout=False)
     images = batch_norm(images)
     images = FC_layer('fc9', images, self.classesnumber, regularizer=self.regularizer)
     self.fcs_output = images
     self.fcs_output_sigmod = tf.nn.sigmoid(self.fcs_output)
Esempio n. 3
0
def inference(input_tensor, regularizer=None):
    # do_conv(name, input_tensor, out_channel, ksize, stride=[1, 1, 1, 1], is_pretrain=True, dropout=False, regularizer=None):
    layers = list(Config.CONV_LAYERS_CONFIG.keys())
    layers.sort()
    for key in layers:
        print key
        layer_config = Config.CONV_LAYERS_CONFIG[key]
        input_tensor = do_conv(key,
                               input_tensor,
                               layer_config['deep'],
                               [layer_config['size'], layer_config['size']],
                               dropout=layer_config['dropout'])
        if layer_config['pooling']['exists']:
            pooling = pool(layer_config['pooling']['name'], input_tensor)
            input_tensor = pooling
        print input_tensor

    # FC_layer(layer_name, x, out_nodes, regularizer=None):
    for key in Config.FC_LAYERS_CONFIG:
        layer_config = Config.FC_LAYERS_CONFIG[key]
        input_tensor = FC_layer(key, input_tensor, layer_config['size'],
                                regularizer)
        if layer_config['batch_norm']:
            input_tensor = batch_norm(input_tensor)
    return input_tensor
Esempio n. 4
0
    def convlayers(self):
        self.parameters = []

        # zero-mean input
        # with tf.name_scope('preprocess') as scope:
        #     mean = tf.constant([123.68, 116.779, 103.939], dtype=tf.float32, shape=[1, 1, 1, 3], name='img_mean')
        #     images = self.imgs-mean
        images = batch_norm(self.imgs)
        # images = self.imgs
        # conv1_1
        # do_conv(name, input_tensor, out_channel, ksize, stride=[1, 1, 1, 1], is_pretrain=True):
        self.conv1_1 = do_conv('conv1_1', images, 64, [3, 3], is_pretrain=self.trainable['conv1_1'],
                               batch_normalization=True)
        self.conv1_2 = do_conv('conv1_2', self.conv1_1, 64, [3, 3], is_pretrain=self.trainable['conv1_2'],
                               batch_normalization=False)

        self.pooling1 = pool('pooling1', self.conv1_2, is_max_pool=True)

        self.conv2_1 = do_conv('conv2_1', self.pooling1, 128, [3, 3], is_pretrain=self.trainable['conv2_1'],
                               batch_normalization=True)
        self.conv2_2 = do_conv('conv2_2', self.conv2_1, 128, [3, 3], is_pretrain=self.trainable['conv2_2'],
                               batch_normalization=False)

        self.pooling2 = pool('pooling2', self.conv2_2, is_max_pool=True)

        self.conv3_1 = do_conv('conv3_1', self.pooling2, 256, [3, 3], is_pretrain=self.trainable['conv3_1'],
                               batch_normalization=True)
        self.conv3_2 = do_conv('conv3_2', self.conv3_1, 256, [3, 3], is_pretrain=self.trainable['conv3_2'],
                               batch_normalization=False)
        self.conv3_3 = do_conv('conv3_3', self.conv3_2, 256, [3, 3], is_pretrain=self.trainable['conv3_3'],
                               batch_normalization=False)

        self.pooling3 = pool('pooing3', self.conv3_3, is_max_pool=True)

        self.conv4_1 = do_conv('conv4_1', self.pooling3, 512, [3, 3], is_pretrain=self.trainable['conv4_1'],
                               batch_normalization=True)
        self.conv4_2 = do_conv('conv4_2', self.conv4_1, 512, [3, 3], is_pretrain=self.trainable['conv4_2'],
                               batch_normalization=False)
        self.conv4_3 = do_conv('conv4_3', self.conv4_2, 512, [3, 3], is_pretrain=self.trainable['conv4_3'],
                               batch_normalization=False)

        self.pooling4 = pool('pooling4', self.conv4_3, is_max_pool=True)

        self.conv5_1 = do_conv('conv5_1', self.pooling4, 512, [3, 3], is_pretrain=self.trainable['conv5_1'],
                               batch_normalization=True)
        self.conv5_2 = do_conv('conv5_2', self.conv5_1, 512, [3, 3], is_pretrain=self.trainable['conv5_2'],
                               batch_normalization=False)
        self.conv5_3 = do_conv('conv5_3', self.conv5_2, 512, [3, 3], is_pretrain=self.trainable['conv5_3'],
                               batch_normalization=False)

        self.pooling5 = pool('pooling5', self.conv5_3, is_max_pool=True)

        self.convs_output = self.pooling5