TensorFlow Serving 介绍

     TensorFlow Serving 是一个用于机器学习模型 serving 的高性能开源库,可以将训练好的模型直接上线并提供服务。其一个重要特性是:它支持模型热更新与自动模型版本管理,这意味着一旦部署 TensorFlow Serving 后,你再也不需要为线上服务操心,只需要关心你的线下模型训练。
     TF Serving采用客户端/服务端模式,其通信方式有两种 gRPC和REST API(注:后者需TensorFlow 1.8及更高版本),下图为TensorFlow Serving的框架图:

Docker 安装 TensorFlow Serving

     安装TensorFlow Serving有三种方法:Docker,二进制,源码编译。本文只介绍其中最简单、最直接的方法:Docker 安装。如想尝试其他方式可以参考 https://www.tensorflow.org/tfx/serving/setup.

  1. Docker 安装

    可参考:https://www.runoob.com/docker/windows-docker-install.html

  2. 使用docker 拉取 TensorFlow Serving 最新版镜像
    docker pull tensorflow/serving  # 默认为 latest版本
    

    如需拉取其他版本可以参考dockers hub tensorflow / serve repo

  3. 获取官方服务仓库(其中demo部分可以测试服务是否能够正常启动)
    # 新建一个文件用于存放官方示例代码, 本文直接放在E盘下
    git clone https://github.com/tensorflow/serving
    cd serving
    # 官方示例代码位置
    E:/serving/tensorflow_serving/servables/tensorflow/testdata
    

Docker 运行 TensorFlow Serving 实例

  1. 使用docker命令启动服务(以 REST API 方式,端口:8501)
    TESTDATA="E:/serving/tensorflow_serving/servables/tensorflow/testdata"
    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 '&'
    

    建立磁盘映射除了使用-v参数,也可以使用mount参数:

    docker run -p 8501:8501 --mount type=bind,source=E:/serving/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_cpu,target=/models/half_plus_two -e MODEL_NAME=half_plus_two -t tensorflow/serving '&'
    

    其中参数解析:

    –mount: 表示要进行挂载
    source: 指定要运行部署的模型地址, 也就是挂载的源,这个是在宿主机上的servable模型目录(pb格式模型而不是checkpoint模型)==注意:==此地址必须是模型的绝对路径!!!
    target: 这个是要挂载的目标位置,也就是挂载到docker容器中的哪个位置,这是docker容器中的目录,模型默认挂在/models/目录下,如果改变路径会出现找不到model的错误
    -t: 指定的是挂载到哪个容器
    -d: 后台运行
    -p: 指定主机到docker容器的端口映射
    -e: 环境变量
    -v: docker数据卷
    –name: 指定容器name,后续使用比用container_id更方便

    运行效果:

  2. Windows 客户端访问服务

    重新打开一个测试窗口,这里使用curl命令:

    curl -XPOST http://localhost:8501/v1/models/half_plus_two:predict -d "{\"instances\":[1.0, 2.0, 5.0]}"
    

    (注:这里需要注意,源码中half_plus_two的模型版本是00000123,但在访问时也必须输入v1而不是v000000123。)
    运行效果:

参考文献

官方介绍
TensorFlow Serving使用指南
TensorFlow Serving入门
tensorflow serving docker
tensorflow serving + docker部署模型
使用tensorflow-serving部署tensorflow模型

TensorFlow Serving 入门教程(Windows)相关推荐

  1. Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE

    Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE Windows平台下安装Arduino IDE Windows操作系统下可以使用安装向导和压缩包形式安装.下面详细讲解这 ...

  2. ros2与windows入门教程-windows上安装ROS2 foxy

    系列文章目录 ros2与windows入门教程-windows上安装ROS2 foxy ros2与windows入门教程-控制小乌龟 ros2与windows入门教程-监听和发布话题 ros2与win ...

  3. Tensorflow Slim入门教程(1)

    slim入门教程 slim入门教程 1. Variable 2. Layers 2.1 slim.bias_add 2.2 slim.batch_norm 2.3 slim.conv2d 2.4 sl ...

  4. Tensorflow keras入门教程

    目录 1.Tensorflow与Keras 2.安装内置Keras的Tensorflow 3.Tensorflow内置的Keras教程 3.1.导入tf.keras 3.2.创建一个简单的模型 3.2 ...

  5. TensorFlow v1 入门教程

    目录 Tensor 计算图 Eager mode Tensorboard Save and Restore 模型保存 模型恢复 tensorflow v2 版本现在已经全面用keras 封装了,运行时 ...

  6. TensorFlow人工智能入门教程之十一 最强网络DLSTM 双向长短期记忆网络(阿里小AI实现)...

    2019独角兽企业重金招聘Python工程师标准>>> 失眠 ....上一章 讲了 最强网络之一 RSNN 深度残差网络 这一章节 我们来讲讲  还有一个很强的网络模型,就是双向LS ...

  7. (转)tensorflow入门教程(二十六)人脸识别(上)

    https://blog.csdn.net/rookie_wei/article/details/81676177 1.概述 查看全文 http://www.taodudu.cc/news/show- ...

  8. TensorFlow 中文资源精选,官方网站,安装教程,入门教程,实战项目,学习路径。

    转载至:http://www.nanjixiong.com/thread-122211-1-1.html Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习 ...

  9. TensorFlow入门教程(1)安装、基础、Tensorboard

    TensorFlow入门教程 本教程适合人群: - 会些python但不是特别精通 - 机器学习的初学者 本教程预计耗时: - 2-3小时 本教程预计效果: - 掌握TensorFlow的基础操作 - ...

  10. TensorFlow入门教程:1:安装和第一个例子程序

    TensorFlow™ 是Google开源的一个采用数据流图用于数值计算的开源库.截止到目前为止在github上已经获得超过6万个Star,已经成为深度学习和机器学习方面最为受欢迎的项目,炙手可热.这 ...

最新文章

  1. 浅议Windows 2000/XP Pagefile组织管理
  2. CC攻击介绍及如何防御
  3. android使用okthtp
  4. 机器学习和图像识别是怎样彻底改变搜索的?
  5. 语音计算矩形面积_【2020年第7期】螺旋折流板换热器质心当量矩形通用计算模型...
  6. Inline函数使用注意事项
  7. Windows下的gcc/gc++编译环境配置
  8. 有些窗口底部被任务栏挡住了_开始使用 Tint2 吧,一款 Linux 中的开源任务栏
  9. VBA FSO 对象模型知识点梳理
  10. Leetcode-5199 Smallest String With Swaps(交换字符串中的元素)
  11. redis基础类型:string
  12. complex类模板c++_高中地理综合题答题模板,学霸们都收藏了!
  13. [Deep Learning] 神经网络基础
  14. linux命令行改变时区,Linux命令行操作修改系统时区
  15. CSDN 支持的<markdown格式>表情包大全分享
  16. python自定义拼音输入法_用Python从0开始实现一个中文拼音输入法的思路详解
  17. [英语阅读]英国13岁男孩当爹引各界热议
  18. Easy Algorithms系列——详解递归与分治
  19. wampserver图标为绿色,打开localhost页面错误提示:The requested URL / was not found on this server
  20. debussy和modelsim联合仿真配置

热门文章

  1. [转载]dilated conv带孔卷积、pooling层提高感受野 反卷积 的理解
  2. 谷歌账号--手机号无法验证的问题
  3. 「Python爬虫系列讲解」五、用 BeautifulSoup 爬取电影信息
  4. 手撸架构,Java基础 面试100问
  5. FW:维度打击,机器学习中的降维算法:ISOMAP  MDS_拔剑-浆糊的传说_新浪博客...
  6. KiKaFramework V1.1发布
  7. 推荐 :数据可视化的方法、工具和应用
  8. pycharm画图出现Font family [‘Micro- soft YaHei‘] not found. Falling back to DejaVu Sans.的错误
  9. 解决白天黑夜模式切换导致Fragment崩溃问题
  10. Prisma(三)——数据模型