Skip to content

Keras - Introduction

深度学习 (Deep learning) 是机器学习 (machine learning) 的一个主要子领域,它利用具有多个层的人工神经网络 (artificial neural networks) 直接从数据中学习复杂的模式。它在计算机视觉(图像/视频识别)、自然语言处理(翻译、情感分析)、机器人学和人工智能 (AI) 等领域推动了重大进展。人工神经网络 (ANNs) 构成了深度学习方法的核心。

有几个强大的库促进了深度学习开发,包括 TensorFlow、PyTorch、JAX 等。Keras 作为一种高级 API 脱颖而出,它专为构建和训练神经网络而设计,强调用户体验、模块化和易于扩展性。

Keras 最初由 François Chollet 开发,是一个独立的库,能够在各种计算后端(如 TensorFlow、Theano 或 Microsoft Cognitive Toolkit (CNTK))上运行。其主要目标是简化深度学习模型的开发。

随着 TensorFlow 2.x 的发布,Keras 被采纳为 TensorFlow 的官方高级 API,现在主要作为 TensorFlow 生态系统的一部分进行开发和维护,称为 tf.keras。虽然 Keras 的核心原则保持不变,但它在 TensorFlow 内的集成提供了更流畅和强大的体验。

tf.keras 作为一个接口,使得定义、训练和评估复杂的神经网络比直接使用较低级别的 TensorFlow API 容易得多。它允许研究人员和开发者快速对深度学习模型进行原型设计和迭代。

tf.keras 继承了原始 Keras 的设计理念,并在 TensorFlow 环境中对其进行了增强:

  • 用户友好的 API (User-Friendly API): 设计时注重清晰和简洁,减轻了开发者的认知负担。
  • 模块化 (Modularity): 模型通过连接模块化组件(层 layers、优化器 optimizers、损失函数 loss functions)来构建,就像搭建积木一样。
  • 可扩展性 (Extensibility): 易于创建自定义层 layers、评估指标 metrics、损失 losses 和其他组件,用于研究和高级应用。
  • Python 原生 (Python-Native): 模型用标准的 Python 代码定义,使得调试和迭代变得简单直接。
  • 无缝的 TensorFlow 集成 (Seamless TensorFlow Integration): 利用 TensorFlow 的能力进行分布式训练 (distributed training)、GPU/TPU 加速、生产部署(TensorFlow Serving, TensorFlow Lite),以及丰富的 tf.data 数据管道进行高效数据处理。

选择 tf.keras 为深度学习项目带来了一些优势:

  • 快速原型开发 (Rapid Prototyping): 简单的 API 允许快速定义和测试模型想法。
  • 广泛适用性 (Broad Applicability): 支持构建各种架构 (architectures),包括卷积神经网络 (Convolutional Neural Networks - CNNs)、循环神经网络 (Recurrent Neural Networks - RNNs) 和复杂的组合。
  • 庞大的社区与生态系统 (Large Community & Ecosystem): 受益于庞大的 TensorFlow 社区、文档、教程以及与其他 TensorFlow 工具的集成。
  • 生产就绪 (Production Ready): 使用 tf.keras 构建的模型可以轻松地使用 TensorFlow 的生产工具进行保存、部署和扩展。
  • 可读性 (Readability): 代码通常清晰易懂,便于协作和维护。