Восстановить модель керас со слоем встраивания - PullRequest
0 голосов
/ 14 апреля 2020

Любой может помочь мне восстановить модель кераса только один раз. Это мой код

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 и графиком, но не знаю, как это реализовать Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...