深度学习网络模型部署——知识储备TensorFlow Serving(三)

实现从项目调研、数据收集、数据预处理、深度卷积神经网络训练再到服务器部署的人脸表情识别小项目

一、TensorFlow Serving

TensorFlow Serving 是一个用于机器学习模型 serving 的高性能开源库。它可以将训练好的机器学习模型部署到线上,使用 gRPC 作为接口接受外部调用。更加让人眼前一亮的是,它支持模型热更新与自动模型版本管理。这意味着一旦部署 TensorFlow Serving 后,你再也不需要为线上服务操心,只需要关心你的线下模型训练。
image.png

大致思路如下:
1、首先export model,准备计算图的代码,将保存的参数restore进入计算图;
2、然后调用export model的方法,导出模型
3、模型导出之后就直接拉取tensorflow serving的镜像然后创建,这里注意如果是tensorflow-serving-1.x.0的镜像,docker run之后就直接可以访问容器服务,tensorflow-serving-1.x.0-devel的镜像需要docker run之后,再进入容器运
4、tensorflow_model_server指定容器映射的端口,model_name等等,如果计算图没有其他依赖,直接拉取tensorflow-serving-1.x.0就行
5、创建tensorflow serving镜像时需要指定端口映射,然后你可以通过这个端口访问serving服务,还需要将宿主机自身模型的path挂载到容器的/models上
6、如何使用运行好的容器服务?可以通过RESTful API访问,也可以通过gRPC API访问/7、最后模型部分已经全部交给了tensorflow-server,再去写一个web服务包装一下就可以快速部署了

TensorFlow Serving是GOOGLE开源的一个服务系统,适用于部署机器学习模型,灵活、性能高、可用于生产环境。 TensorFlow Serving可以轻松部署新算法和实验,同时保持相同的服务器架构和API,它具有以下特性:

1.支持模型版本控制和回滚
2.支持并发,实现高吞吐量
3.开箱即用,并且可定制化
4.支持多模型服务
5.支持批处理
6.支持热更新
7.支持分布式模型
8.易于使用的inference api
9.为gRPC expose port 8500,为REST API expose port 8501
安装与测试指南

二、该项目部署方法考量

人脸表情识别整个项目涉及到几个方面问题:
表情识别项目 .png

1.数据采集
2.数据预处理
3.人脸检测
4.人脸关键点检测
5.深度学习模型训练
6.模型在线部署
7.在线检测速度优化问题
8.增加其它检测功能(如视线方向等)

你可能感兴趣的:(深度学习网络模型部署——知识储备TensorFlow Serving(三))