返回介绍

1.6.9.1 使用通用gRPC客户端

发布于 2020-10-01 16:39:38 字数 3429 浏览 885 评论 0 收藏 0

简介

TensorFlow serving提供了通用的gRPC接口,我们也考虑实现通用的gRPC客户端,由于用户模型的输入数据不同,因此我们通过JSON定义数据,并且集成到Xiaomi Cloud-ML中。

使用Xiaomi Cloud-ML

安装cloudml命令工具后,我们可以创建模型服务,请求的数据保存到本地JSON文件中。

{
  "keys_dtype": "int32",
  "keys": [[1], [2]],
  "features_dtype": "float32",
  "features": [[1,2,3,4,5,6,7,8,9], [1,2,3,4,5,6,7,8,9]]
}

注意JSON文件中所有字段与用户TensorFlow模型的定义是对应的,不同模型的键不同,为了构建TensorProto,我们还需要用户为每个键设置类型,字段名是键名加上"_dtype",值是TensorFlow可以支持的格式。

如果模型是我们自己部署的,默认只有我们可以获取该ip,因此直接指定模型名和版本来预测了。

cloudml models predict linear v1 -f ./data.json

如果我们想访问通用的TensorFlow serving服务,可不必创建模型,直接指定ip也可以访问。

cloudml models predict -n linear -s 127.0.0.1:9000 -f ./data.json

实现原理

Xiaomi Cloud-ML的通用客户端是基于Python实现的,和普通Python gRPC客户端类似,实现方法参考 TensorFlow serving Python客户端 。

我们对Python gRPC客户端进行封装,支持读取JSON文件构建TensorProto,易用性更强但灵活性较差,如果不想使用cloudml命令行也可以直接运行下面的脚本。

./generic_predict_client.py --server 127.0.0.1:9000 --model linear --data ./linear.json

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文