# 使用 TensorFlow 和 Flask 部署 Keras 图像分类卷积神经网络模型

{% tabs %}
{% tab title="关键词" %}
TensoFlow.js | Python | Flask | Keras | 图像分类 | 卷积神经网络
{% endtab %}

{% tab title="梗概" %}
通常需要抽象出您的机器学习模型细节，然后将其与易于使用的 API 端点部署或集成。 例如，我们可以提供一个 URL 端点，任何人都可以使用它来发出 POST 请求，他们将获得模型推断的 JSON 响应，而不必担心其技术问题。

在本教程中，我们将创建一个 TensorFlow Serving 服务器，部署我们在 Keras 中构建的 InceptionV3 图像分类卷积神经网络 (CNN)。 然后我们将创建一个简单的 Flask 服务器，它将接受 POST 请求并进行一些图像预处理，这是 Tensorflow 服务服务器所需的，并返回一个 JSON 响应。

### TensorFlow 服务

服务是您在训练后应用机器学习模型的方式。

TensorFlow Serving 使将模型投入生产的过程变得更容易、更快。 它允许您安全地部署新模型并运行实验，同时保持相同的服务器架构和 API。 开箱即用，它提供与 TensorFlow 的集成，但它可以扩展为服务其他类型的模型。

#### 安装 TensorFlow 服务

先决条件：请创建一个python虚拟环境并在其中安装带有TensorFlow后端的Keras。在[这里](https://keras.io/#installation)阅读更多。

注意：所有命令均已在 Ubuntu 18.04.1 LTS 上的 python 虚拟环境中执行。

现在，在同一个虚拟环境中运行以下命令（使用 sudo 获取 root 权限）：

#### 命令行安装

#### 构建目录概述

在开始之前了解目录结构将帮助我们清楚地了解我们在每一步的位置。

### 导出 Keras 模型

#### 导出模型的脚本

#### 启动 TensorFlow 服务服务器

#### 命令行启动服务器

#### 测试 TensorFlow 服务器

#### 测试脚本

### Flask 服务器选择理由

正如我们所见，我们在serving\_sample\_request.py（前端调用者）中执行了一些图像预处理步骤。以下是在 TensorFlow 服务服务器之上创建 Flask 服务器的原因：

#### 创建 Flask 服务器

#### 创建脚本

#### 自动启停TensorFlow 和 Flask 服务器的脚本

#### 两个服务器测试

#### 处理跨域 HTTP 请求

### 源代码
{% endtab %}
{% endtabs %}

{% content-ref url="../zhi-dian-mi-jin-brief" %}
[zhi-dian-mi-jin-brief](../zhi-dian-mi-jin-brief)
{% endcontent-ref %}
