Beispiel #1
0
 def init_model(self):
     
     with tf.variable_scope ('RGB', reuse=tf.AUTO_REUSE):
         if model_type == 'resnet50':
             self.rgb_model = resnet.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_50')
         elif model_type == 'resnet101':
             self.rgb_model = resnet.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_101',
                                             unit_num=[3, 4, 23, 3])
         elif model_type == 'resnet152':
             self.rgb_model = resnet.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_152',
                                             unit_num=[3, 8, 36, 3])
         elif model_type == 'inception_v1':
             self.rgb_model = inception_v1.InceptionV1 (num_classes=self._NUM_CLASSES)
 
     with tf.variable_scope ('Flow', reuse=tf.AUTO_REUSE):
         if model_type == 'resnet50':
             self.flow_model = resnet.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_50')
         elif model_type == 'resnet101':
             self.flow_model = resnet.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_101',
                                             unit_num=[3, 4, 23, 3])
         elif model_type == 'resnet152':
             self.flow_model = resnet.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_152',
                                             unit_num=[3, 8, 36, 3])
         elif model_type == 'inception_v1':
             self.flow_model = inception_v1.InceptionV1 (num_classes=self._NUM_CLASSES)
     
     with tf.variable_scope('Fusion',reuse=tf.AUTO_REUSE):
         if fusion_type == 'fhn':
             self.fusion_model = fusion_net.FeatureHierachyNetwork (num_classes=self._NUM_CLASSES,fusion_mode = fusion_mode)
         elif fusion_type == 'non_local':
             self.fusion_model = non_local_fusion_net.space_cross_correlation_Network(num_classes=self._NUM_CLASSES,fusion_mode = fusion_mode)
         elif fusion_type == 'channel':
             self.fusion_model = non_local_fusion_net.channel_cross_correlation_Network(num_classes=self._NUM_CLASSES,fusion_mode = fusion_mode)
         elif fusion_type == 'space_channel':
             self.fusion_model = non_local_fusion_net.cross_correlation_Network(num_classes=self._NUM_CLASSES,fusion_mode = fusion_mode)
Beispiel #2
0
    def init_model(self):
        if eval_type in ['rgb', 'joint']:
            with tf.variable_scope ('RGB', reuse=tf.AUTO_REUSE):
                if model_type == 'resnet50':
                    self.rgb_model = resnet.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_50')
                    print ('resnet50 process successfully')
                elif model_type == 'resnet50_attention':
                    self.rgb_model = resnet_attention.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_50')
                elif model_type == 'inception_v1':
                    self.rgb_model = inception_v1.InceptionV1 (num_classes=self._NUM_CLASSES)
                elif model_type == 'vgg_16':
                    self.rgb_model = vgg.vgg (num_classes=self._NUM_CLASSES)
                elif model_type == 'resnet101':
                    self.rgb_model = resnet.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_101',
                                                    unit_num=[3, 4, 23, 3])
                elif model_type == 'resnet152':
                    self.rgb_model = resnet.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_152',
                                                    unit_num=[3, 8, 36, 3])
                elif model_type == 'inception_v2':
                    self.rgb_model = inception_v2.InceptionV2 (num_classes=self._NUM_CLASSES)
                elif model_type == 'se_resnet50':
                    self.rgb_model = SE.SE_Resnet(num_classes=self._NUM_CLASSES, name='resnet_v1_50')
                elif model_type == 'inception_v3':
                    self.rgb_model = inception_v3.InceptionV3 (num_classes=self._NUM_CLASSES)                     
                elif model_type == 'inception_resnet_v2':
                    self.rgb_model = inception_resnet_v2.InceptionResnetV2(num_classes=self._NUM_CLASSES)

        if eval_type in ['flow', 'joint']:
            with tf.variable_scope ('Flow', reuse=tf.AUTO_REUSE):
                if model_type == 'resnet50':
                    self.flow_model = resnet.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_50')
                    print ('resnet50 process successfully')
                elif model_type == 'resnet50_attention':
                    self.flow_model = resnet_attention.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_50')
                elif model_type == 'inception_v1':
                    self.flow_model = inception_v1.InceptionV1 (num_classes=self._NUM_CLASSES)
                elif model_type == 'vgg_16':
                    self.flow_model = vgg.vgg (num_classes=self._NUM_CLASSES)
                elif model_type == 'resnet101':
                    self.flow_model = resnet.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_101',
                                                    unit_num=[3, 4, 23, 3])
                elif model_type == 'resnet152':
                    self.flow_model = resnet.Resnet (num_classes=self._NUM_CLASSES, name='resnet_v1_152',
                                                     unit_num=[3, 8, 36, 3])
                elif model_type == 'inception_v2':
                    self.flow_model = inception_v2.InceptionV2 (num_classes=self._NUM_CLASSES)
                elif model_type == 'se_resnet50':
                    self.flow_model = SE.SE_Resnet(num_classes=self._NUM_CLASSES, name='resnet_v1_50')
                elif model_type == 'inception_v3':
                    self.flow_model = inception_v3.InceptionV3 (num_classes=self._NUM_CLASSES)
                elif model_type == 'inception_resnet_v2':
                    self.flow_model = inception_resnet_v2.InceptionResnetV2(num_classes=self._NUM_CLASSES)
Beispiel #3
0
    def init_model(self):
        if eval_type in ['rgb', 'joint']:
            with tf.variable_scope('RGB', reuse=tf.AUTO_REUSE):
                if model_type == 'resnet50':
                    self.rgb_model = resnet.Resnet(
                        num_classes=self._NUM_CLASSES,
                        name='resnet_v1_50',
                        eval_type=eval_type)
                    print('resnet50 process successfully')
                elif model_type == 'inception_v1':
                    self.rgb_model = inception_v1.InceptionV1(
                        num_classes=self._NUM_CLASSES)
                elif model_type == 'vgg_16':
                    self.rgb_model = vgg.vgg(num_classes=self._NUM_CLASSES)
                elif model_type == 'resnet152':
                    self.rgb_model = resnet.Resnet(
                        num_classes=self._NUM_CLASSES,
                        name='resnet_v1_152',
                        eval_type=eval_type,
                        unit_num=[3, 8, 36, 3])
                elif model_type == 'inception_v2':
                    self.rgb_model = inception_v2.InceptionV2(
                        num_classes=self._NUM_CLASSES)
                elif model_type == 'resnet18':
                    self.rgb_model = resnet.Vanilla_Resnet(
                        num_classes=self._NUM_CLASSES, name='resnet_v1_18')

        if eval_type in ['flow', 'joint']:
            with tf.variable_scope('Flow', reuse=tf.AUTO_REUSE):
                if model_type == 'resnet50':
                    self.flow_model = resnet.Resnet(
                        num_classes=self._NUM_CLASSES,
                        name='resnet_v1_50',
                        eval_type=eval_type)
                    print('resnet50 process successfully')
                elif model_type == 'inception_v1':
                    self.flow_model = inception_v1.InceptionV1(
                        num_classes=self._NUM_CLASSES)
                elif model_type == 'vgg_16':
                    self.flow_model = vgg.vgg(num_classes=self._NUM_CLASSES)
                elif model_type == 'resnet152':
                    self.flow_model = resnet.Resnet(
                        num_classes=self._NUM_CLASSES,
                        name='resnet_v1_152',
                        eval_type=eval_type,
                        unit_num=[3, 8, 36, 3])
                elif model_type == 'inception_v2':
                    self.flow_model = inception_v2.InceptionV2(
                        num_classes=self._NUM_CLASSES)
                elif model_type == 'resnet18':
                    self.rgb_model = resnet.Vanilla_Resnet(
                        num_classes=self._NUM_CLASSES, name='resnet_v1_18')
Beispiel #4
0
            endpoints['logits'] = logits

        return logits, endpoints


if __name__ == "__main__":
    try:
        from model import resnet, inception_v1, inception_v2, vgg, SE, densenet
    except:
        import resnet, inception_v1, inception_v2, vgg, SE, densenet
    # tf.enable_eager_execution()
    rgb_input = tf.placeholder(tf.float32, [None, 224, 224, 3])

    flow_input = tf.placeholder(tf.float32, [None, 224, 224, 20])

    rgb_logits, rgb_endpoints = inception_v1.InceptionV1()(
        rgb_input, is_training=False, dropout_keep_prob=1.0)

    flow_logits, flow_endpoints = inception_v1.InceptionV1()(
        flow_input, is_training=False, dropout_keep_prob=1.0)

    feature_list = [rgb_endpoints, flow_endpoints]

    with tf.variable_scope('fusion'):
        fusion_logits, endpoints = FeatureHierachyNetwork(
            fusion_mode='concat')(feature_list,
                                  is_training=True,
                                  dropout_keep_prob=1.0)

    model_logits = fusion_logits
    print(model_logits)
    # sess = tf.Session()