首页 > 解决方案 > 你可以在同一个 tensorflow/serving 二进制文件中提供来自不同 tensorflow 版本的模型吗?

问题描述

假设我有两个保存的模型,一个来自 tensorflow 1.8,另一个来自 tensorflow 2.2。为这两者提供服务可能会遇到兼容性问题

是否可以在同一个 tensorflow/serving 二进制文件中同时提供这两个服务?


我的直觉表明没有人不能,至少不容易。

我不是 bazel 文件方面的专家,但我认为编译 tensorflow/serving 需要构建和链接 tensorflow 核心库。我不确定是否可以将两个不同版本的 tensorflow 核心库链接在一起。

我想可以在两个不同的发布点1.8.02.2.0中编译 tensorflow/serving 二进制 文件,并分别在您的基础设施中部署这两个二进制文件。然后需要在模型发现层和请求路由层管理哪个模型需要加载到哪个 tensorflow/serving 二进制文件中,以及哪个预测请求应该与哪个 tensorflow/serving 端点对话。

标签: tensorflowtensorflow-serving

解决方案


我绝对不是 TensorFlow 深层内部运作的专家,所以对此持保留态度。但我认为你想做的事情实际上可能很容易。

我非常近似(并且可能完全不正确)的理解是 TensorFlow API 是一种包装器,它创建一个表示您想要执行的任何计算的图形,并且编译后的图形至少在某些版本之间是交叉兼容的,甚至如果用于创建和操作它的 API 不是。

根据经验,我已经能够将使用 TensorFlow 1.15.x 构建的模型放入 2.3.0 上的 TensorFlow Serving 中,完全没有问题。


推荐阅读