keras 中的预处理层:它们是什么以及如何使用它们

对于 keras,最近的两个版本带来了重要的新功能,包括底层基础设施和工作流程增强。这篇文章重点介绍后一类的一个杰出示例:旨在帮助完成预处理、数据增强和特征工程任务的新型层系列。

来源:RStudio AI博客

数据预处理:在将数据输入模型之前对数据进行的操作。— 一个简单的定义,在实践中留下了许多未解决的问题。预处理应该在哪里停止,模型应该在哪里开始?标准化或各种数值变换等步骤是模型的一部分还是预处理的一部分?数据增强呢?总之,预处理和建模之间的界限总是感觉有些模糊。

在这种情况下,keras 预处理层的出现改变了长期以来熟悉的画面。

keras

具体来说,使用 keras,有两种替代方案往往占上风:一是在 R 中预先完成工作;二是构建 tfdatasets 管道。前者适用于我们需要完整数据来提取一些摘要信息的情况。例如,当标准化为平均值零和标准差一时。但通常,这意味着我们必须在工作流程的几个点上在规范化和非规范化版本之间来回转换。另一方面,tfdatasets 方法很优雅;但是,它可能需要编写大量低级 tensorflow 代码。

keras tfdatasets tfdatasets tensorflow

从 keras 版本 2.6.1 开始提供的预处理层消除了对前期 R 操作的需求,并且可以与 tfdatasets 很好地集成。但这并不是它们的全部。在这篇文章中,我们想强调四个基本方面:

keras tfdatasets
    预处理层显著减少了编码工作量。您可以自己编写这些操作;但不必这样做可以节省时间,有利于模块化代码,并有助于避免错误。预处理层(准确地说是它们的一个子集)可以在适当训练之前生成摘要信息,并在稍后调用时使用保存的状态。预处理层可以加快训练速度。预处理层是模型的一部分,或者可以成为模型的一部分,从而无需在部署环境中实施独立的预处理程序。
( )