Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 在使用tf-hub模型时,如何避免每次预测上的init会话_Tensorflow_Tf Hub - Fatal编程技术网

Tensorflow 在使用tf-hub模型时,如何避免每次预测上的init会话

Tensorflow 在使用tf-hub模型时,如何避免每次预测上的init会话,tensorflow,tf-hub,Tensorflow,Tf Hub,我按照本文()中的方法构建了一个使用通用句子编码器的模型。培训过程基本上是 module_url = "https://tfhub.dev/google/universal-sentence-encoder-large/3" embed = hub.Module(module_url) def UniversalEmbedding(x): return embed(tf.squeeze(tf.cast(x, tf.string)), signature="default", as_di

我按照本文()中的方法构建了一个使用通用句子编码器的模型。培训过程基本上是

module_url = "https://tfhub.dev/google/universal-sentence-encoder-large/3" 
embed = hub.Module(module_url)
def UniversalEmbedding(x):
    return embed(tf.squeeze(tf.cast(x, tf.string)), signature="default", as_dict=True)["default"]

input_text = layers.Input(shape=(1,), dtype=tf.string)
embedding = layers.Lambda(UniversalEmbedding, output_shape=(embed_size,))(input_text)
dense = layers.Dense(256, activation='relu')(embedding)
pred = layers.Dense(category_counts, activation='softmax')(dense)
model = Model(inputs=[input_text], outputs=pred)
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()
with tf.Session() as session:
   K.set_session(session)
   session.run(tf.global_variables_initializer())
   session.run(tf.tables_initializer())
   history = model.fit(train_text, 
        train_label,
        validation_data=(test_text, test_label),
        epochs=10,
        batch_size=32)
  model.save_weights('./model.h5')
我保存了一个模型权重,希望以后使用。我可以通过将权重加载到模型 model.load\u权重(self.model\u权重文件) 然而,每当我需要做出预测时,我都需要创建一个会话作为

with tf.Session() as session:
    K.set_session(session)
    session.run(tf.global_variables_initializer())
    session.run(tf.tables_initializer())
    predicts = self.model.predict(text)

会话初始化需要很长时间,如果我需要在每个预测中创建会话,它会给我带来巨大的开销。是否有一种方法可以创建一次会话,并在每次预测中持续使用它

什么是
K.set\u会话
?您不需要重新初始化模型预测,您应该能够加载一次初始化模型,然后在文本中循环多次推理。什么是
K.set\u会话
?您不需要重新初始化模型预测,您应该能够加载一个初始化模型一次,然后在文本中循环多次推理。