深度学习示例:Apache Kafka,Python,Keras,TensorFlow和Deeplearning4j

我在“ 机器学习+ Kafka Streams示例 ” Github项目中添加了一个新示例:

Python + Keras + TensorFlow + DeepLearning4j + Apache Kafka + Kafka流 ”。

这篇博客文章讨论了动机以及为什么这是可扩展的,可靠的机器学习基础设施技术的完美结合。 有关利用Apache Kafka开源生态系统构建机器学习/深度学习基础架构的更多详细信息,请查看以下两个博客文章:

使用Python和Keras进行深度学习

目的是展示如何轻松地将使用Python和Keras开发的模型部署到Java / Kafka生态系统。 Keras允许在后台使用不同的深度学习后端:TensorFlow,CNTK或Theano 。 它充当高级包装,即使对于机器学习的新手也非常易于使用。 由于这些原因,这些天来Keras吸引了很多人。

使用Deeplearning4J(DL4J)将Keras模型部署到Java / Kafka生态系统

机器学习框架具有与Java平台(因此也与Apache Kafka生态系统)结合的不同选择,例如用于将模型或RPC接口加载到特定于框架的模型服务器的本机Java API。

Deeplearning4j似乎已成为部署Keras模型的事实上的标准(如果您信任Google搜索)。 专为Java平台构建的深度学习框架为其Keras Model Import添加了许多功能和错误修复,并支持了许多新版本(测试版)中越来越好的Keras概念。 我在Github示例中使用1.0.0-beta3。 请在此处查看Deeplearning4j中受支持的Keras功能完整列表,例如层,损失函数,**函数,初始化程序和优化程序。

您可以使用Keras完全训练模型,然后“只是”将其嵌入Java应用程序中以进行模型推理,或者通过DL4J的Java API(又称为转移学习)来重用模型或模型的一部分以改进模型。



我实现了一个简单但仍然令人印象深刻的示例:

开发受Python,Keras和TensorFlow训练的分析模型,并将其部署到Java和Kafka生态系统。 易于实现(如您在源代码中所见),但是功能强大,可扩展且可靠。

这次不是商业案例,而只是简单的“ Hello World” Keras模型的技术演示。 随时用您选择的后端培训的任何其他Keras模型替换该模型。 您只需要替换二进制模型(并使用与DeepLearning4J的模型导入器兼容的模型)即可。 然后,您可以将其嵌入到Kafka应用程序中以进行实时模型推断。

Apache Kafka和DL4J用于实时预测

经过训练的模型将嵌入到Kafka Streams应用程序中,以进行实时预测。 这是核心的Kafka Streams逻辑,在这里我使用Deeplearning4j API进行预测:

深度学习示例:Apache Kafka,Python,Keras,TensorFlow和Deeplearning4j

我的单元测试的完整源代码在这里: Kafka Streams + DeepLearning4j + Keras + TensorFlow 。 只需对Github项目进行“ git clone”并运行Maven构建,它就可以直接使用而无需任何配置。

翻译自: https://www.javacodegeeks.com/2018/11/deep-learning-apache-kafka-keras.html