我正在尝试使用来自 tensorflow hub 的嵌入模块作为可服务。我是 tensorflow 的新手。目前,我正在使用 Universal Sentence Encoder嵌入作为查找将句子转换为嵌入,然后使用这些嵌入来查找与另一个句子的相似性。
我当前将句子转换为嵌入的代码是:
with tf.Session() as session:
session.run([tf.global_variables_initializer(), tf.tables_initializer()])
sen_embeddings = session.run(self.embed(prepared_text))
Prepared_text 是一个句子列表。我如何采用这个模型并使其成为可服务的?
最佳答案
目前,Tensorflow Serving 无法直接使用集线器模块。您必须将模块加载到一个空图表中,然后使用 SavedModelBuilder
导出它。 .例如:
import tensorflow as tf
import tensorflow_hub as hub
with tf.Graph().as_default():
module = hub.Module("http://tfhub.dev/google/universal-sentence-encoder/2")
text = tf.placeholder(tf.string, [None])
embedding = module(text)
init_op = tf.group([tf.global_variables_initializer(), tf.tables_initializer()])
with tf.Session() as session:
session.run(init_op)
tf.saved_model.simple_save(
session,
"/tmp/serving_saved_model",
inputs = {"text": text},
outputs = {"embedding": embedding},
legacy_init_op = tf.tables_initializer()
)
这将以所需的格式导出您的模型(到文件夹
/tmp/serving_saved_model
)以供服务。之后,您可以按照此处文档中的说明进行操作:https://www.tensorflow.org/serving/serving_basic
关于tensorflow - 如何使用 tensorflow 服务使 tensorflow hub 嵌入可服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50788080/