【问题标题】:Consume tensor-flow serving inception model using java client使用 java 客户端使用张量流服务初始模型
【发布时间】:2018-08-06 10:16:40
【问题描述】:

我所做的是,我在 Windows 上使用 Docker 部署了张量流服务。我在张量流服务中使用初始模型。它已启动并正在运行。 现在,使用 java,我想将图像从浏览器上传到这个在 tensorflow 服务中运行的初始模型,作为响应,我应该得到类名。

任何示例都会有所帮助。

【问题讨论】:

    标签: java rest spring-boot tensorflow-serving


    【解决方案1】:

    tensorflow服务是一个服务,所以这样对待。不需要任何特别的东西。因为 1.8 tensorflow serving 提供了一个 REST API,所以只需从你的 java 应用程序发送一个 http 请求到 REST tensorflow serving 服务。

    最近发布的一篇博文中有一个简单的示例,说明如何为 MNIST 设置 REST TensorFlow 服务(但可以与任何模型一起使用):“Tensorflow 服务:REST 与 gRPC”https://medium.com/@avidaneran/tensorflow-serving-rest-vs-grpc-e8cef9d4ff62

    您要做的就是根据您的模型(初始)签名创建 REST 请求。

    【讨论】:

      【解决方案2】:

      假设Tensorflow Serving 1.11.0-rc1(在1.10.1不工作),请求JSON payload的形式为:

      {
        "inputs": {
          "images": [{ "b64": "IMAGE_BASE64" }]
        }
      }
      

      IMAGE_BASE64 是图像上要预测的 Base64 编码(通常是长字符串,因此此处未显示)。 Java 客户端库需要为输入图像构建此有效负载。

      然后,Java 客户端会将请求提交到以下端点:

      POST /v1/models/inception:predict
      

      您可能需要将 inception 替换为服务器上部署的模型的名称。


      要从 shell(从在 Docker 上运行的 Linux 或使用等效的 PowerShell 命令)尝试针对localhost 上可用的服务器(映射到 Docker Serving 容器公开的端口,此处为 8501):

      curl -d "@request.json" -X POST http://localhost:8501/v1/models/inception:predict
      

      request.json 文件包含本文开头的请求 JSON 负载。一个典型的反应:

      {
        "outputs": {
          "classes": [
            "class1",
            "class2",
            ...
          ],
          "scores": [
            [
              0.0321035,
              0.905796,
              ...
            ]
          ]
        }
      }
      

      重要提示:以上运行来自旧 Inception v3 模型 (2015) 的部署,在 Serving 0.4.1 时导出。不过,它与 Serving 1.11.0-rc1 配合得很好。如果您使用最新的导出脚本导出了模型,则可能存在细微差异(1.11.0-rc1 export script 在签名方面似乎没有区别)。所以这个答案可能对你不起作用,但只是让你走上解决问题的道路。

      【讨论】:

      • 这正是我一直在寻找的。我正在使用 C# 生成 base64image 字符串。不幸的是,当 POST 带有消息“evhttp_read_cb:非法连接状态 7”时,服务器会断开连接。当我在 Keras 中查看 PIL 格式时,它的格式与 C# 中的 B64 相比确实不同。有什么帮助吗?
      猜你喜欢
      • 2017-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      相关资源
      最近更新 更多