tensorflow

tensorflow serving (一):运行官方例子

2018-12-21  本文已影响0人  夕一啊

Google提供TensorFlow Servering,可以将训练好的模型直接上线并提供服务。也就是通过网络服务来获得模型的结果。之前都是自己写flask,有了tf serving就不需要了。

1. 介绍

官方介绍:TensorFlow Serving is a flexible, high-performance serving system for machine learning models, designed for production environments. TensorFlow Serving makes it easy to deploy new algorithms and experiments, while keeping the same server architecture and APIs. TensorFlow Serving provides out-of-the-box integration with TensorFlow models, but can be easily extended to serve other types of models and data.

翻译:TensorFlow Serving 是一种灵活、高性能的机器学习模型服务系统,适用于生产环境。TensorFlow Serving使部署新算法和实验变得容易,同时可以保持相同的服务器架构和接口。TensorFlow Serving提供了与TensorFlow模型的开箱即用集成,但可以轻松扩展为服务其他类型的模型和数据。

2. 例子

tf serving 有两种方式运行,一种是 Bazel,还有一种是docker。docker的方式看起来简单些,先学习这种。
官网例子:https://tensorflow.google.cn/serving/

  1. 拉取docker,之后的运行环境就在这个docker里,无需再安装其他库,非常方便
docker pull tensorflow/serving
  1. 从git上克隆仓库,我们需要的模型就在这个仓库里
git clone https://github.com/tensorflow/serving

3.指定好相对路径,使docker能找到我们的模型

TESTDATA="$(pwd)/serving/tensorflow_serving/servables/tensorflow/testdata"
  1. 通过docker起服务,把我们存放模型的路径挂在到docker默认起服务的路径去
docker run -t --rm -p 8501:8501 \
   -v "$TESTDATA/saved_model_half_plus_two_cpu:/models/half_plus_two" \
   -e MODEL_NAME=half_plus_two \
   tensorflow/serving &
  1. 服务已经起好了,赶紧测试下
curl -d '{"instances": [1.0, 2.0, 5.0]}' \
   -X POST http://localhost:8501/v1/models/half_plus_two:predict

# Returns => { "predictions": [2.5, 3.0, 4.5] } 应该得到这个输出

短短几步,我们的服务已经起好了,通过网址加端口的访问,就能得到模型的结果。

Tips:

  1. 如果不想docker服务在后台起,就去掉最后的 "&", 这样方便监控这个进程,不然出问题了也找不到这个进程。

  2. docker的“--rm”参数是关闭docker自动自动清理容器内部的文件系统。但是ctrl+c退出docker不会关闭这个容器,需要手动stop。

3.如果起docker的时候出现“failed: port is already allocated.”那就是之前的docker没有关闭,所以那个端口还被占用着,需要stop关闭docker。

参考:
https://www.jianshu.com/p/afe80b2ed7f0

上一篇 下一篇

猜你喜欢

热点阅读