Keras 教程

2025 年 4 月 26 日 | 阅读需要 5 分钟
Keras Tutorial

Keras 是一个开源的高级神经网络库,用 Python 编写,能够在 Theano、TensorFlow 或 CNTK 上运行。 它由 Google 工程师 Francois Chollet 开发。 它具有用户友好、可扩展和模块化的特点,可以更快地进行深度神经网络实验。 它不仅单独支持卷积网络和循环网络,还支持它们的组合。

它无法处理低级计算,因此它使用 **Backend** 库来解决这个问题。 后端库充当低级 API 的高级 API 包装器,使其可以在 TensorFlow、CNTK 或 Theano 上运行。

最初,它在发布时有超过 4800 名贡献者,现在已增加到 250,000 名开发人员。 自成立以来,每年都有 2 倍的增长。 微软、谷歌、NVIDIA 和亚马逊等大公司都为 Keras 的开发做出了积极贡献。 它具有令人惊叹的行业互动,并被用于开发 Netflix、Uber、Google、Expedia 等流行公司。

是什么让 Keras 与众不同?

  • 关注用户体验一直是 Keras 的重要组成部分。
  • 在行业中被广泛采用。
  • 它是一个多后端并支持多平台,这有助于所有编码器聚集在一起进行编码。
  • Keras 的研究社区与生产社区合作得非常出色。
  • 易于掌握所有概念。
  • 它支持快速原型设计。
  • 它可以无缝地在 CPU 以及 GPU 上运行。
  • 它提供了设计任何架构的自由,然后稍后将其用作项目的 API。
  • 入门非常简单。
  • 轻松生产模型实际上使 Keras 变得特别。

Keras 用户体验

  1. Keras 是为人设计的 API
    Keras 遵循最佳实践来减少认知负荷,确保模型的一致性,并简化相应的 API。
  2. 不是为机器设计的
    Keras 在发生任何错误时提供清晰的反馈,从而最大限度地减少了大多数常见用例的用户操作数量。
  3. 易于学习和使用。
  4. 高度灵活
    Keras 通过集成低级深度学习语言(例如 TensorFlow 或 Theano)为所有开发人员提供高度的灵活性,这确保了以基础语言编写的任何内容都可以在 Keras 中实现。

Keras 如何支持多后端和多平台的说法?

Keras 可以在 R 以及 Python 中开发,这样代码可以根据需要使用 TensorFlow、Theano、CNTK 或 MXNet 运行。 Keras 可以在 CPU、NVIDIA GPU、AMD GPU、TPU 等上运行。 它确保使用 Keras 生成模型非常简单,因为它完全支持与 TensorFlow 服务、GPU 加速(WebKeras、Keras.js)、Android (TF、TF Lite)、iOS (Native CoreML) 和 Raspberry Pi 一起运行。

Keras 后端

Keras 作为一个模型级库,通过提供高级构建块来帮助开发深度学习模型。 所有低级计算,例如张量乘积、卷积等,都不是由 Keras 本身处理的,而是依赖于专门的张量操作库,该库经过良好优化,可以用作后端引擎。 Keras 对此进行了完美的管理,它没有合并一个单一的张量库并执行与该特定库相关的操作,而是提供了将不同的后端引擎插入 Keras 的功能。

Keras 包含三个后端引擎,如下所示

  • TensorFlow
    TensorFlow 是 Google 的产品,它是最著名的深度学习工具之一,广泛用于机器学习和深度神经网络的研究领域。 它于 2015 年 11 月 9 日在 Apache License 2.0 下进入市场。它的构建方式使其可以轻松地在多个 CPU 和 GPU 以及移动操作系统上运行。 它包含各种不同语言的包装器,例如 Java、C++ 或 Python。
    Keras Tutorial
  • Theano
    Theano 由蒙特利尔大学、加拿大魁北克的 MILA 集团开发。 它是一个开源的 Python 库,通过整合 scipy 和 numpy,广泛用于对多维数组执行数学运算。 它利用 GPU 进行更快的计算,并通过自动构建符号图来有效地计算梯度。 事实证明,它非常适合不稳定的表达式,因为它首先在数值上观察它们,然后使用更稳定的算法计算它们。
    Keras Tutorial
  • CNTK
    Microsoft Cognitive Toolkit 是深度学习的开源框架。 它包含形成神经网络所需的所有基本构建块。 这些模型使用 C++ 或 Python 进行训练,但它包含 C# 或 Java 来加载模型以进行预测。
    Keras Tutorial

Keras 的优势

Keras 包含以下优点,如下所示

  • 它非常容易理解和整合网络模型的更快部署。
  • 它在市场中拥有巨大的社区支持,因为大多数人工智能公司都热衷于使用它。
  • 它支持多后端,这意味着您可以根据您的要求,将 TensorFlow、CNTK 和 Theano 中的任何一个与 Keras 作为后端一起使用。
  • 由于它具有易于部署的特点,因此它还支持跨平台。 以下是 Keras 可以部署的设备
    1. 带有 CoreML 的 iOS
    2. 带有 TensorFlow Android 的 Android
    3. 带有 .js 支持的 Web 浏览器
    4. 云引擎
    5. 树莓派
  • 它支持数据并行性,这意味着 Keras 可以同时在多个 GPU 上进行训练,从而加快训练时间并处理大量数据。

Keras 的缺点

  • 唯一的缺点是 Keras 具有自己的预配置层,如果您想创建抽象层,它不会让您创建,因为它无法处理低级 API。 它只支持在后端引擎(TensorFlow、Theano 和 CNTK)之上运行的高级 API。

前提条件

本 Keras 教程专为初学者和专业人士设计,旨在帮助他们理解 Keras 的基本概念。 完成本教程后,您将发现自己处于中等专业水平,您可以从中提升到下一个水平。

目标受众

由于 Keras 是深度学习的高级库,因此您需要具备 Python 语言的实践经验以及神经网络的基本知识。

问题

我们向您保证,您在本教程中不会遇到任何困难。 如果您有任何疑问,或者您在本教程中发现任何错误,请通过在联系表中发布来告知我们,以便我们可以进一步改进它。