本教程指导您如何利用Keras进行多输入与混合数据的处理。我们将学习如何构建能够接收多种输入(包括数字、分类和图像数据)的Keras架构。接下来,我们将在混合数据上训练一个端到端网络。这是关于Keras与回归预测的三部系列教程的最终部分。
通过本教程,您将掌握以下技能:
了解如何利用Keras处理多输入与混合数据,敬请阅读!
借助Keras灵活的深度学习框架,可以定义一个多输入模型,该模型包含CNN和MLP分支,以处理混合数据。
在机器学习中,混合数据指包含多种类型数据的概念。例如,在医院工作的机器学习工程师为开发能够对患者健康状况进行分类的系统,将面临多种类型的数据输入,如:
所有这些值构成了不同的数据类型;我们的机器学习模型必须能够接收这种“混合数据”并进行预测。
处理混合数据是机器学习研究中的一个开放领域,通常严重依赖于特定任务/最终目标。在本教程中,我们将处理混合数据以帮助您了解相关挑战。
不同于Sequential API,Keras的函数式API允许构建更复杂的模型,包括多输入模型。
例如,我们可以定义一个简单的序列神经网络:
数据集包含数字/分类数据与图像数据。图像数据来自每栋房屋中的535个示例。数字和分类属性包括:
每个房子总共提供了四张图片:
今天,我们将使用Keras处理多个输入与混合数据,接受数字/分类数据以及图像数据到网络。
Houses-dataset文件夹包含我们在本系列中使用的House Prices数据集。运行mix_training.py脚本时,您仅需提供数据集路径作为命令行参数(具体操作将在结果部分展示)。我们回顾三个Python脚本:
定义函数加载并预处理数字/分类数据与图像数据。结果是一个更准确的模型,因为它过滤了不平衡的记录。
接下来定义一个辅助函数来加载输入图像。加载所有图像,并创建表示每栋房屋的蒙太奇图像。
构建一个多输入、混合数据网络,定义两个分支:
这两个分支将合并以形成最终的多输入Keras模型。
准备构建能够处理多个输入与混合数据的最终Keras模型。训练与评估也将在此脚本中进行。
定义函数加载数值/分类数据与图像数据,进行切分、缩放与编码。
定义两个分支:MLP与CNN,分别处理数字/分类数据与图像数据。
将分支合并为多输入Keras网络模型,然后训练与评估模型。
在混合数据上训练多输入网络后,我们获得以下结果:
本教程教会您如何定义接受多个输入的Keras网络,以及如何使用Keras处理混合数据。我们定义了一个多输入神经网络,将数值数据与图像数据组合,并在单个端到端网络中训练。
通过这种方式,我们能够端到端地训练多输入网络,其准确度接近单个输入时的水平。代码复现已提供。
Copyright © 2019- zrrp.cn 版权所有 赣ICP备2024042808号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务