序言。我正在解决经典的分类任务,用户向我发送图像,对图像进行分类,然后将其发回给班级名称,另外将结果保存在数据库中。为了使一切高效,我在返回类ID的机器上运行了一个tensorflow-serving,至于{class: name}
映射,它在Web服务器端进行维护。
现在问题,如何将这些{class: name}
映射与TF模型保持同步?假设我有两类分类任务:{0: "tree", 1: "car"}
。在我的模型的第二个版本中,我交换了这两个类,即映射很好地变成了{0: "car", 1: "tree"}
,为什么不呢?如果我在Web服务器端拥有静态映射,则将所有树分类为汽车,反之亦然。
问题。解决此同步问题的正确方法是什么?
在开始回答之前,让我先回答一些非常合理的问题:
如果采用建议的方法,则发送模型版本以及响应就足够了。我可以在tf服务中做到吗?欢迎其他解决此问题的想法和方法。
答案 0 :(得分:0)
我想您已经有了某种包装TensorFlow Server的服务,并且该服务向用户公开,您可以在其中实现一些额外的逻辑。
TF Serving提供了metadata API(通过REST或RPC),使您可以请求当前托管的模型的SignatureDef。我不确定这是否满足您的需要,因为在您描述的场景中SignatureDef可能保持不变。但是,method_name
似乎允许一些customization:
// Extensible method_name information enabling third-party users to mark a
// SignatureDef as supporting a particular method. This enables producers and
// consumers of SignatureDefs, e.g. a model definition library and a serving
// library to have a clear hand-off regarding the semantics of a computation.
也许您可以将版本绑定到此method_name
中,并在每次启动服务时提出要求。