使用 tensorflow serving 进行数据处理 (Docker/Kubernetes)

Data processing while using tensorflow serving (Docker/Kubernetes)

我希望托管 5 个需要数据 preprocessing/postprocessing 的深度学习模型。

使用 TF 服务(和 Kubernetes 来管理容器)来托管每个模型似乎很简单,但如果是这样的话,数据预处理和 post 处理应该在哪里进行?

我不确定这个问题是否有一个明确的答案,但我很幸运地大规模部署模型,将数据预处理和 post 处理代码捆绑到相当普通的 Go 或 Python(例如,Flask)连接到我的持久存储以进行其他操作的应用程序。

例如,以电影推荐为例,在预测路线上,从数据库中提取用户看过的 100 部电影,将它们转储到适当大小和编码的 NumPy 数组中,分发到TensorFlow 服务容器,然后在返回之前执行最小的 post 处理(例如从持久存储层的不同部分提取电影名称、描述、演员表)。

josephkibe 回答的附加选项,您可以:

  1. 在模型本身中实施处理(请参阅 SavedModel guide 中的 keras 模型签名和估计器的输入接收器)。

  2. 安装Seldon-core。它是一个用于处理构建图像和网络的服务的完整框架。它将服务构建为具有不同 API 的 pods 图表,其中之一是 pre/post-process 数据的转换器。