【问题标题】:Save preprocessing Tensorflow Transform function保存预处理 TensorFlow Transform 函数
【发布时间】:2020-08-04 14:18:41
【问题描述】:

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

为了清楚起见,我有一个对训练数据进行预处理的模型。我想对服务数据使用相同的功能。

【问题讨论】:

    标签: tensorflow tensorflow-serving tensorflow-transform


    【解决方案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)
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多