为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Java 客户端使用张量流服务初始模型

使用 Java 客户端使用张量流服务初始模型

有只小跳蛙 2021-06-25 18:02:10
我所做的是,我在 Windows 上使用 Docker 部署了张量流服务。我在张量流服务中使用了初始模型。它正在运行。现在,使用java,我想将图像从浏览器上传到在 tensorflow 服务中运行的这个初始模型,作为响应,我应该获取类名。任何示例示例都会有所帮助。
查看完整描述

2 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

假设 Tensorflow Serving 1.11.0-rc1(在 中不起作用1.10.1),请求 JSON 负载的形式为:


{

  "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 导出脚本在签名方面似乎没有区别)。所以这个答案可能不适合你,但只是让你走上解决问题的道路。


查看完整回答
反对 回复 2021-06-30
  • 2 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信