- 1.2 服务介绍
- 1.3.1 概念介绍
- 1.3.2 快速入门
- 1.3.3 申请Quota
- 1.3.4 集群环境
- 1.3.5 Fdsfuse介绍
- 1.3.6 Tensorflow中使用hdfs
- 1.4 客户端使用
- 1.4.1 安装命令行工具
- 1.4.2 使用命令行工具
- 1.4.3 使用Python SDK
- 1.4.4 使用Web控制台
- 1.5 TrainJob功能
- 1.5.1 训练任务组件和流程
- 1.5.2 上手Trainjob
- 1.5.3 使用GPU
- 1.5.4 使用FDS
- 1.5.5 使用Fuse
- 1.5.6 Trainjob高级功能
- 1.5.6.1 分布式训练
- 1.5.6.2 使用前置/后置命令
- 1.5.6.3 自动超参数调优
- 1.5.6.4 自动超参数调优Hpjob
- 1.5.6.5 自动超参数调优Hpjob
- 1.5.6.6 使用自定义镜像
- 1.5.6.7 使用TensorFlow模板应用
- 1.5.6.8 使用HDFS
- 1.5.6.9 使用HDFS FUSE
- 1.6 ModelService功能
- 1.6.1 模型服务使用流程
- 1.6.2 TensorFlow Serving介绍
- 1.6.3 使用GPU模型服务
- 1.6.4 使用多副本和负载均衡
- 1.6.5 在线服务的模型升级
- 1.6.6 模型服务监控
- 1.6.7 使用前置命令和后置命令
- 1.6.8 定制模型服务Docker镜像
- 1.6.9 使用客户端预测
- 1.6.9.1 使用通用gRPC客户端
- 1.6.9.2 使用Python客户端
- 1.6.9.3 使用Java客户端
- 1.6.9.4 使用Scala客户端
- 1.6.9.5 使用Golang客户端
- 1.6.9.6 使用C++客户端
- 1.7 DevEnv功能
- 1.7.1 开发环境使用流程
- 1.7.2 使用命令行管理开发环境
- 1.7.3 使用WEB控制台管理开发环境
- 1.7.4 高级功能
- 1.7.4.1 使用GPU开发环境
- 1.7.4.2 使用FDS FUSE存储
- 1.7.4.3 使用HDFS存储
- 1.7.4.4 使用HDFS FUSE存储
- 1.7.4.5 网络和安全
- 1.7.4.6 监控
- 1.7.4.7 定制开发环境Docker镜像
- 1.7.5 最佳实践
- 1.8 使用率监控
- 1.8.1 GPU使用率监控
- 1.9 TensorboardService功能
- 1.9.1 TensorBoard使用流程
- 1.9.2 TensorBoard介绍
- 1.10 API文档
- 1.10.1 签名规范
- 1.10.2 API文档
- 1.11 问题反馈
- 1.11.1 FAQ
- 1.11.2 技术支持
1.6.9.2 使用Python客户端
简介
我们要访问TensorFlow serving服务,Python应用也需要实现对应的gRPC客户端。
TensorFlow serving官方文档提供了生成mnist Python客户端的例子,但由于依赖bazel编译,编译出来的Python脚本不能直接运行。
完整例子
这里提供一个Python gRPC客户端例子,手动生成proto代码,没有任何依赖可以直接运行 https://github.com/tobegit3hub/deep_recommend_system/tree/master/python_predict_client 。
./predict_client.py --host 127.0.0.1 --port 9000 --model_name linear --model_version 1
不同模型的输入格式不同,我们只需要直接修改Python脚本中构建TensorProto的代码即可,建议使用该项目编译生成的文件和代码例子。
实现原理
实现Python gRPC客户端,我们需要编译TensorFlow serving和TensorFlow的proto文件,由于官方项目依赖bazel编译,我们需要修改proto文件中的依赖路径。
编译生成的Python文件可以直接import,然后参考TensorFlow的文档生成TensorProto对象,参考gRPC的文档调用gRPC服务端即可。
读取图片文件生成TesorProto
在图像分类等场景,我们需要将图片转成numpy或者TensorProto对象,才能通过gRPC请求TensorFlow serving服务,这里提供使用scipy ndimage的例子,测试已经支持jpg和png文件。
这里提供一个完整的使用CNN训练图像分类模型,然后使用Python客户端加载jpg或png文件进行预测的例子 https://github.com/tobegit3hub/deep_cnn/blob/master/python_predict_client/predict_client.py 。
from scipy import ndimage
# Create numpy ndarray for batch images
features = np.ndarray(shape=(5, 32, 32, 3), dtype=np.float32)
image_filepaths = ["../data/inference/Blastoise.png",
"../data/inference/Charizard.png",
"../data/inference/Mew.png",
"../data/inference/Pikachu.png",
"../data/inference/Venusaur.png"]
for index, image_filepath in enumerate(image_filepaths):
image_ndarray = ndimage.imread(image_filepaths[0], mode="RGB")
features[index] = image_ndarray
# Create TensorProto
features_tensor_proto = tf.contrib.util.make_tensor_proto(features,
dtype=tf.float32)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论