82. 构建图像分类推理服务#

82.1. 介绍#

前面图像分类的实验和挑战中,我们利用 TensorFlow Keras 提供的预训练模型完成过猫狗识别任务。本次挑战中,你需要尝试使用 TensorFlow Keras 提供的预训练模型构建一个图像分类实时推理 API 接口。

82.2. 知识点#

  • 预训练模型

  • TensorFlow Keras

  • Flask Web API

迁移学习的相关实验和挑战中,我们使用过 Keras 提供的 MobileNetV2 预训练模型,该模型在 ImageNet 训练完的体积为 14MB。本次挑战中,你需要利用 MobileNetV2 预训练模型,并结合 scikit-learn 模型部署时使用过的 Flask Web 框架,构建一个图像分类实时推理 API。

Exercise 82.1

开放型挑战

挑战:实现一个由 MobileNetV2 预训练模型构建的图像分类实时推理 API,并能够利用其对任意通过 POST 请求传入的图片进行推理。

提示:请合理利用搜索引擎等各种工具自行思考并解决此题,实现方式不定,但结果需和期望输出相似。

期望输出:

我们期望能实现对任意图片进行推理。推荐你在 Linux 环境实现。Notebook 环境不适合构建 Flask 应用,但可以模仿前面实验中使用子进程方式来完成。

挑战最终实现效果大致如下,我们期望对任意本地图片,输出在 ImageNet 中的前 5 个概率最高的分类类别以及对应的概率值。

https://cdn.huhuhang.com/hands-on-ai/images/document-uid214893labid7506timestamp1553061331770.svg