翟高粤 高乾龙 赵云杰 唐竹韵

摘 要:深度学习通常需要把训练好的神经网络模型部署到生产环境中,并能够以服务的形式提供给生产应用。常用的两种方案是基于Flask和基于TensorFlow Serving。本文先对TensorFlow Serving框架进行介绍,然后对环境的搭建进行说明,最后通过一个工程项目详细说明TensorFlow Serving框架的部署方法。
关键词:深度学习;TensorFlow Serving;CIFAR-10;神经网络模型部署
在日常的生产应用中,我们需要将训练好的神经网络模型部署到生产环境中,并能够以服务的形式提供给生产应用。基于TensorFlow 编写的神经网络模型部署有两种方案可以选择:一是基于Flask等 Web框架;二是基于TensorFlow Serving。
TensorFlow Serving是一个用于机器学习模型serving的高性能开源库。它可以将训练好的机器学习模型部署到线上,使用gRPC作为接口接受外部调用。它支持模型热更新与自动模型版本管理。一旦部署TensorFlow Serving后,不需要为线上服务操心,只需要关心你的线下模型训练。本文接下来将介绍使用TensorFlow Serving进行模型部署的方案,并以训练好的基于CNN的CIFAR-10图像分类模型为部署案例进行详细说明。
一、TensorFlow Serving框架简介
TensorFlow Serving是一个高性能、开源的机器学习服务系统,为生产环境部署及更新TensorFlow模型而设计。TensorFlow Serving能够让训练好的模型更快、更易于投入生产环境中使用,提供了高效、高可用的模型服务治理能力。
二、TensorFlow Serving框架构成
TensorFlow Serving包含四个核心模块,分别是Servable、 Source、Loader和Manager,根据对官方文档的研究,以这四个模块为基础绘制出TensorFlow Serving的整体架构,如图1所示。下面简单介绍架构中各个模块的定义。
(一)Servable
Servable是用于执行计算的底层对象。……