Любой может помочь мне восстановить модель кераса только один раз. Это мой код
def universal_embedding(x):
embed = hub.Module(url)
return embed(tf.squeeze(tf.cast(x, tf.string), axis=[1]), signature="default", as_dict=True)["default"]
def create_model():
input_text = layers.Input(shape=(1,), dtype=tf.string)
embedding = layers.Lambda(universal_embedding, output_shape=(512,))(input_text)
dense = layers.Dense(256, activation='relu')(embedding)
pred = layers.Dense(4, activation='softmax')(dense)
model = Model(inputs=[input_text], outputs=pred)
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()
return model
@app.route("/predictLabel", methods=['GET', 'POST'])
@cross_origin()
def predict_label():
model = create_model()
request_data = json.loads(request.data)
text = request_data['text']
request_list = [text]
request_list = np.array(request_list, dtype=object)[:, np.newaxis]
with tf.compat.v1.Session() as session:
K.set_session(session)
session.run([tf.compat.v1.global_variables_initializer(), tf.compat.v1.tables_initializer()])
model.load_weights('./model.h5')
predicts = model.predict(request_list, batch_size=32)
Теперь модель загружает каждый запрос, как загрузить модель один раз с самого начала? Я знаю, что для этого нужно иметь дело с сессией Tensflow и графиком, но не знаю, как это реализовать Большое спасибо.