0

目前我们有一个模型,我们将使用 Tensorflow Serving 将其用于我们的 API。因此,我们需要将当前 API 输入数据转换为特征。由于模型的创建和模型的使用是在两个不同的存储库中执行的,并且我不想在两个不同的存储库中进行转换(以使两个存储库保持相同),我正在阅读有关 Tensorflow 变换能够使用 1 个函数来处理训练数据和服务数据。但是,我发现很难理解它在生产中是如何工作的。当我保存模型时,我可以包括保存预处理功能吗?或者我可以在哪里“托管”这个预处理功能?

所以要清楚,我有一个预处理训练数据的模型。我想对服务数据使用相同的功能。

4

1 回答 1

1

在 TensorFlow Serving 中运行的任何东西都只是一个 TensorFlow 图,无论是模型本身还是您的预处理步骤。将两者折叠在一起所需要做的就是通过将预处理步骤的输出替换为模型的输入来连接两个图,假设这是兼容的。

例如,假设您的模型非常简单,它接受任意长度的输入并计算其 L2 范数:

input = tf.placeholder(tf.float32, [None])
norm = tf.norm(input, ord=2)

然后我们有一个我们想要应用的数据准备函数,它在计算 L2 范数之前将原始输入加倍:

input = tf.placeholder(tf.float32, [None])
doubled = tf.add(input, input)

您可以通过执行以下操作在一个 TensorFlow Serving 部署中预处理并执行“预测”(例如在这个玩具示例中):

input = tf.placeholder(tf.float32, [None])
doubled = tf.add(input, input)
norm = tf.norm(input, ord=2)

这并不是特别有用,并且可能比您正在做的事情要简单得多。希望它能传达这个想法!

于 2020-08-27T00:23:30.000 回答