KerasRedis(内存数据结构存储)
Flask (Python的微web框架)
消息队列和消息代理编程范例
本篇文章的整体思路如下:
我们将首先简要讨论Redis数据存储,以及如何使用它促进消息队列和消息代理。然后,我们将通过安装所需的Python包来配置Python开发环境,以构建我们的Keras深度学习REST API。一旦配置了开发环境,就可以使用Flask web框架实现实际的Keras深度学习REST API。在实现之后,我们将启动Redis和Flask服务器,然后使用cURL和Python向我们的深度学习API端点提交推理请求。最后,我们将以对构建自己的深度学习REST API时应该牢记的注意事项的简短讨论结束。
第一部分:简要介绍Redis如何作为REST API消息代理/消息队列
图片1:Redis可以用作我们深度学习REST API的消息代理/消息队列
Redis是内存中的数据存储。它不同于简单的键/值存储(比如memcached),因为它可以存储实际的数据结构。今天我们将使用Redis作为消息代理/消息队列。这包括:
在我们的机器上运行Redis
将数据(图像)按照队列的方式用Redis存储,并依次由我们的REST API处理
为新批输入图像循环访问Redis
对图像进行分类并将结果返回给客户端
文章中对Redis官网有一个超链接(https://redis.io/topics/introduction),但是要翻出去,所以我就截图一个图片放上去仅供参考。
第二部分:安装和配置Redis
官网做法,linux系统的安装:
自己的安装方法:
conda install redis
开启方式相同:
resdis-server
结果:
测试和原文的命令一致。
第三部分:配置Python开发环境以构建Keras REST API
文章中说需要创建新的虚拟环境来防止影响系统级别的python项目(但是我没有创建),但是还是需要安装rest api所需要依赖的包。以下为所需要的包。
第四部分:实现可扩展的Keras REST API
首先是Keras Redis Flask REST API数据流程图
让我们开始构建我们的服务器脚本。为了方便起见,我在一个文件中实现了服务器,但是它可以按照您认为合适的方式模块化。为了获得最好的结果和避免复制/粘贴错误,我建议您使用本文的“下载”部分来获取相关的脚本和图像。
为了简单起见,我们将在ImageNet数据集上使用ResN