import os from keras import models import numpy as np from module.Utils import * current_path = os.path.dirname(__file__) class ListpageContentPredictor(): def __init__(self,file=""): if file=="": self.model_file = current_path+"/listpage/content/model/ep005-acc0.970-loss0.047-val_acc0.944-val_loss0.077.h5" else: self.model_file = current_path+"/listpage/content/model/"+file self.model = None self.getModel() self.graph = tf.get_default_graph() def getModel(self): if self.model is None: self.model = models.load_model(self.model_file, custom_objects={"acc":acc,"precision":precision,"recall":recall,"f1_score":f1_score,"my_loss":my_loss}) self.model.load_weights(self.model_file) return self.model def predict(self,x): with self.graph.as_default(): pre= self.getModel().predict(x) max_index = np.argmax(pre,1)[0][1] return max_index class DetailContentPredictor(): def __init__(self,file=""): if file=="": self.model_file = current_path+"/detail/content/model/ep011-loss0.160-val_acc0.900-val_loss0.156-f10.4536.h5" else: self.model_file = current_path+"/detail/content/model/"+file self.model = None self.getModel() self.graph = tf.get_default_graph() def getModel(self): if self.model is None: self.model = models.load_model(self.model_file, custom_objects={"acc":acc,"precision":precision,"recall":recall,"f1_score":f1_score,"my_loss":my_loss}) self.model.load_weights(self.model_file) return self.model def predict(self,x): with self.graph.as_default(): pre= self.getModel().predict(x) max_index = np.argmax(pre,1)[0][1] return max_index class DetailTitlePredictor(): def __init__(self,file=""): if file=="": self.model_file = current_path+"/detail/title/model/ep009-acc0.995-loss0.006-val_acc0.986-val_loss0.018.h5" else: self.model_file = current_path+"/detail/title/model/"+file self.model = None self.getModel() self.graph = tf.get_default_graph() def getModel(self): if self.model is None: self.model = models.load_model(self.model_file, custom_objects={"acc":acc,"precision":precision,"recall":recall,"f1_score":f1_score,"my_loss":my_loss}) self.model.load_weights(self.model_file) return self.model def predict(self,x): with self.graph.as_default(): pre= self.getModel().predict(x) max_index = np.argmax(pre,1)[0][1] return max_index