【发布时间】:2018-12-05 19:21:40
【问题描述】:
前言。我正在解决一个经典的分类任务,用户给我发了一张图像,我对其进行分类并将类的名称发回给他,另外将结果保存在数据库中。为了使一切高效,我在返回类 id 的机器上运行 tensorflow-serving,至于 {class: name} 映射,它在 Web 服务器端维护。
现在问题,如何保持这些{class: name} 映射与 TF 模型同步?假设,我有一个二分类任务:{0: "tree", 1: "car"}。在我的模型的第二个版本中,我交换了这两个类,即地图变成了{0: "car", 1: "tree"},为什么不呢?如果我在 Web 服务器端持有静态映射,那么我会将所有树归类为汽车,反之亦然。
问题。解决这个同步问题的正确方法是什么?
在你开始回答之前,让我回答几个非常合理的问题:
-
问:为什么我们不能将此映射移动到 TensorFlow 服务端?
A:假设,我们在 tf 端弄乱了命名。然后有一段时间我们将写入数据库错误的名称。当我们发现这一点时,我们需要去数据库并重命名所有内容。在 Web 服务器端进行映射使这根本不是问题。我们将更改此映射,仅此而已,因为我们在数据库中只存储了类 ID。 -
问:如果模型被更改并且所有类都被打乱了怎么办?
A:当然,我们需要对所有模型进行版本化,并为每个模型存储一个映射。
如果我们采用建议的方法,那么随响应一起发送模型版本就足够了。我可以在 tf-serving 中做到这一点吗?欢迎其他解决此问题的想法和方法。
【问题讨论】:
标签: tensorflow tensorflow-serving