Tensorflow服务:何时在Flask服务中使用它而不是简单推断?

Alo*_*ble 6 python flask tensorflow tensorflow-serving

我正在提供使用对象检测API训练的模型。这是我的做法:

  • 基础教程中所述在端口9000上创建Tensorflow服务

  • 创建一个Python代码调用使用predict_pb2从类似tensorflow_serving.apis这项服务

  • 在Flask服务器中调用此代码以使服务可通过HTTP使用

不过,我可以通过以下方式更轻松地完成工作:

  • 在对象检测仓库中的示例一样,为推理创建一个python代码
  • 在Flask服务器中调用此代码以使服务可通过HTTP使用

如您所见,我本可以跳过使用Tensorflow服务。

那么,在我的情况下是否有充分的理由使用Tensorflow服务?如果没有,我应该在什么情况下使用它?

Tho*_*ula 6

我相信您更喜欢 Tensorflow Serving 而不是 Flask 的大部分原因都与性能有关:

  • Tensorflow Serving 使用 gRPC 和 Protobuf,而常规 Flask Web 服务使用 REST 和 JSON。JSON 依赖于 HTTP 1.1,而 gRPC 使用 HTTP/2(有重要区别)。此外,Protobuf 是一种用于序列化数据的二进制格式,它比 JSON 更高效
  • TensorFlow Serving可以将请求批量发送到同一模型,使用硬件(例如 GPU)更合适。
  • TensorFlow Serving 可以管理模型版本控制

与几乎所有事情一样,这在很大程度上取决于您拥有的用例和您的场景,因此考虑利弊以及您的要求很重要。TensorFlow Serving 具有很棒的功能,但也可以通过一些努力实现这些功能以与 Flask 一起使用(例如,您可以创建批处理机制)。