【问题标题】:Use Tensorflow trained models as a service使用 Tensorflow 训练的模型作为服务
【发布时间】:2016-11-11 09:51:16
【问题描述】:

我刚开始使用 tensorflow。我能够成功地为我创建的数据集训练它。现在的问题是,我将如何使用这个模型进行预测。我想将其作为 REST 服务,我将能够向其传递一些值并获得预测作为响应。也欢迎任何有用的链接。该模型当前位于 VM 上。

谢谢:)

【问题讨论】:

    标签: google-app-engine tensorflow tensorflow-serving


    【解决方案1】:

    您见过 GCP 上的 Cloud ML 吗?它可能正是您想要的。
    https://cloud.google.com/ml/

    您可能需要对模型的架构进行一些调整 - 例如可变批量大小和向集合添加输入/输出 - 但它们在 documentation. 中得到了很好的解释

    如果您决定更新模型时性能、可扩展性和短停机时间不是问题,您也可以考虑只安装一个简单的烧瓶服务器并在其上安装 tensorflow。

    如果您不想使用 Cloud ML 并且需要处理大量请求,请查看 tensorflow serving

    【讨论】:

      【解决方案2】:

      首先:尝试保存和加载您的模型:https://www.tensorflow.org/versions/r0.11/how_tos/variables/index.html

      然后,训练结束后,您可以简单地调用:

      rest_prediction = sess.run(prediction_tensor, feed_dict={x_tensor: user_input})

      一个重要的区别是,在训练期间您有 batch_size 输入,但是当您有一个 REST 服务器时,您有 1 个输入。张量的形状 (https://www.tensorflow.org/versions/r0.11/resources/dims_types.html) 应该是可变的。可以在这里找到如何实现这一点:https://www.tensorflow.org/versions/r0.11/resources/faq.html#tensor-shapes

      如果您发布一个简短的代码 sn-p,我们或许可以为您提供更好的帮助。

      【讨论】:

      • 这有帮助.. 但我最终使用了一种方法,我点击了由我的代码生成的 .pb 文件..