部署Keras模型通常需要抽象出你的机器学习模型,并将其与易于使用的API端点一起部署或集成。例如,我们可以提供一个URL端点,任何人都可以使用它来发出POST请求,他们会得到模型推断的JSON响应,而不必担心其技术性细节。
在本教程中,我们将创建一个TensorFlow服务器来部署我们在Keras内置的InceptionV3图像分类卷积神经网络(CNN)。 然后,我们将创建一个简单的Flask服务器,该服务器将接受POST请求并执行Tensorflow服务器所需的一些图像预处理,并返回JSON响应。
什么是TensorFlow服务?
TensorFlow服务是你训练应用机器学习模型的方式。
了解TensorFlow服务(https://www.youtube.com/watch?v=q_IkJcPyNl0)
TensorFlow服务使得投入生产的过程模型更容易、更快速。它允许你安全地部署新模型并运行实验,同时保持相同的服务器体系结构和API。开箱即用,它提供了与TensorFlow的集成,而且它可以扩展为其他类型的模型。
安装TensorFlow服务
先决条件:请创建一个python虚拟环境,并在其中安装带有TensorFlow后端的Keras。在这里阅读更多(https://keras.io/#installation)
注意:所有命令都在Ubuntu 18.04.1 LTS的python虚拟环境中执行。
现在,在同一虚拟环境中运行以下命令(使用sudo获取root权限):
你可以使用以下命令升级到tensorflow-model-server的较新版本:
我们将要构建的目录概述
在开始之前了解目录结构将有助于我们清楚地了解每个步骤的位置。
你可以从我的GitHub存储库中获取所有这些文件:https://github.com/himanshurawlani/keras-and-tensorflow-serving
导出用于Tensorflow服务