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)
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)
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')
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()