gpt4 book ai didi

tensorflow - 使用 TensorFlow 服务提供 TF 模型时,预处理和后处理步骤应该在哪里执行?

转载 作者:行者123 更新时间:2023-12-03 07:42:11 25 4
gpt4 key购买 nike

通常要使用 TF 图,需要将原始数据转换为数值。我将此过程称为预处理步骤。例如,如果原始数据是一个句子,一种方法是对句子进行标记并将每个单词映射到一个唯一的数字。此预处理为每个句子创建一个数字序列,该序列将作为模型的输入。

我们还需要对模型的输出进行后处理来解释它。例如,将模型生成的数字序列转换为单词,然后构建句子。

TF Serving是 Google 最近推出的一项新技术,用于服务 TF 模型。我的问题是:

使用 TensorFlow 服务提供 TF 模型时,预处理和后处理应该在哪里执行?

我应该将预处理和后处理步骤封装在我的 TF Graph 中(例如使用 py_funmap_fn )还是存在另一种我不知道的 TensorFlow 技术。

最佳答案

我在这里遇到了同样的问题,即使我还不是 100% 确定如何使用 wordDict 变量(我猜你也使用一个来映射单词及其 id),主要预处理和后处理函数定义如下:

https://www.tensorflow.org/programmers_guide/saved_model

作为export_outputsserving_input_receiver_fn

  • exports_outputs

如果您使用估计器,则需要在 EstimatorSpec 中定义。这是分类算法的示例

  predicted_classes = tf.argmax(logits, 1)
categories_tensor = tf.convert_to_tensor(CATEGORIES, tf.string)
export_outputs = { "categories": export_output.ClassificationOutput(classes=categories_tensor) }
if mode == tf.estimator.ModeKeys.PREDICT:
return tf.estimator.EstimatorSpec(
mode=mode,
predictions={
'class': predicted_classes,
'prob': tf.nn.softmax(logits)
},
export_outputs=export_outputs)
  • serving_input_receiver_fn

需要在导出经过训练的估计器模型之前对其进行定义,它假设输入是原始字符串并从那里解析您的输入,您可以编写自己的函数,但我不确定何时可以使用外部变量。这是分类算法的一个简单示例:

def serving_input_receiver_fn():
feature_spec = { "words": tf.FixedLenFeature(dtype=tf.int64, shape=[4]) }
return tf.estimator.export.build_parsing_serving_input_receiver_fn(feature_spec)()

export_dir = classifier.export_savedmodel(export_dir_base=args.job_dir,
serving_input_receiver_fn=serving_input_receiver_fn)

希望有帮助。

关于tensorflow - 使用 TensorFlow 服务提供 TF 模型时,预处理和后处理步骤应该在哪里执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46478561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com