tensorflow - 如何使用 tensorflow 服务使 tensorflow hub 嵌入可服务?

标签 tensorflow tensorflow-serving word-embedding

我正在尝试使用来自 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/

相关文章:

machine-learning - 从公开可用的词嵌入中提取更有意义的词

python - 使用 tensorflow.contrib.signal 重建信号会导致放大或调制(帧、overlap_and_add、stft 等)

python - ValueError : No gradients provided for any variable, 检查图表中是否支持梯度操作

tensorflow - 计算编辑距离(feed_dict 错误)

python - 我如何使用 tensorflow 2 进行均衡学习率?

TensorFlow Serving 将图像作为 Cloud ML Engine 上的 base64 编码字符串

tensorflow - 如何分析在 tf-serving 上运行的 tensorflow 模型?

tensorflow - TensorFlow Saver、Exporter 和 Save Model 之间的关系

nlp - Fasttext 算法只使用单词和子单词?还是句子也?

nlp - CBOW VS跳过-gram : why invert context and target words?