【发布时间】:2017-08-08 08:05:28
【问题描述】:
我成功创建了一个接收 TF saved_model 的服务器,但现在我想向它发送查询并获取预测。
但是,我很难理解客户端是如何工作的以及如何实现它。
我在网上找到的只是basic tutorial,但他们只提供了mnist的客户端代码,不适合我自己的mdoel。
那么任何人都可以向我介绍如何为不同的模型使用或实现客户端吗?
谢谢
【问题讨论】:
标签: tensorflow tensorflow-serving
我成功创建了一个接收 TF saved_model 的服务器,但现在我想向它发送查询并获取预测。
但是,我很难理解客户端是如何工作的以及如何实现它。
我在网上找到的只是basic tutorial,但他们只提供了mnist的客户端代码,不适合我自己的mdoel。
那么任何人都可以向我介绍如何为不同的模型使用或实现客户端吗?
谢谢
【问题讨论】:
标签: tensorflow tensorflow-serving
非常感谢 google 让 tensorflow 服务于开源,这对像我这样的人将预测模型投入生产非常有帮助。但我不得不承认 tensorflow 服务在文档中表现不佳,或者,他们认为使用它的人应该已经对 tensorflow 有很好的了解。我坚持了很长时间,以了解它是如何工作的。在他们的网站上,他们很好地介绍了概念和示例,但中间缺少一些东西。
我会推荐教程here。这是第一部分,您也可以关注第二部分,链接会在那篇文章中。
一般来说,当您将 .ckpt 文件导出到可服务模型(.pb 文件和变量文件夹)时,您必须定义模型的输入、输出和方法名称,并将它们作为签名保存在 tf.saved_model.signature_def_utils.build_signature_def
在文章中,你会发现我在这部分上面所说的:
tf.saved_model.signature_def_utils.build_signature_def(
inputs={‘images’: predict_tensor_inputs_info},
outputs={‘scores’: predict_tensor_scores_info},
method_name=\
tf.saved_model.signature_constants.PREDICT_METHOD_NAME)
您可以按照作者在文章中定义输入和输出的方式,对您的自定义模型做同样的事情。
之后,您必须在客户端脚本中调用签名并将输入输入到服务器,然后服务器将识别使用哪种方法并返回输出。您可以查看作者是如何编写客户端脚本的,并找到调用签名和馈送输入的对应部分。
【讨论】: