当前位置: 首页 > article >正文

【人工智能】Python常用库-Keras:高阶深度学习 API

Keras:高阶深度学习 API

Keras 是一个高效、用户友好的深度学习框架,作为 TensorFlow 的高级 API,支持快速构建和训练深度学习模型。它以模块化、简单和灵活著称,适合研究和生产环境。

Keras 的发音为 [ˈkerəs],类似于 “凯拉斯” 或 “克拉斯”。这个名字来源于希腊语 κέρας (kéras),意思是 “角” 或 “角质物”。这个词与深度学习的灵感来源——大脑的神经网络结构 有一定联系。

Keras 的作者 François Chollet 选择这个名字可能是为了体现一种简洁、优雅和强大的设计理念,正如它的框架目标一样:为开发者提供直观、用户友好且强大的工具

此外,Keras 是由 François Chollet 于 2015 年开发并开源,最初是一个独立的深度学习框架,后来成为 TensorFlow 的高级 API,进一步扩展了它的影响力和用户群体。


Keras 的主要特点

  1. 用户友好

    • 通过简单、直观的接口,减少学习曲线。
    • 使用 Python 编写,代码简洁易读。
  2. 模块化

    • 支持模型层的任意组合,如输入层、隐藏层、输出层、激活函数等。
  3. 支持多种计算后端

    • 作为 TensorFlow 的高级 API,完全整合了 TensorFlow 的功能。
  4. 高度灵活

    • 支持自定义模型、层和损失函数,满足高级用户需求。
  5. 高效的原型设计

    • 适合快速试验和迭代开发。

Keras 模型 API 类型

  1. Sequential API

    • 适用于简单的线性堆叠模型。
    • 每层按顺序叠加。
  2. Functional API

    • 适合构建复杂的非线性拓扑模型,如多输入、多输出模型。
    • 更加灵活,允许定义任意的图结构。
  3. Model Subclassing

    • 自定义模型的方式,通过子类化 tf.keras.Model 构建任意复杂模型。

Keras 的核心模块

  1. Layers

    • 基础构件,用于定义模型的每一层(如 Dense、Conv2D、LSTM)。
    from tensorflow.keras.layers import Dense, Conv2D, Flatten
    

  2. Models

    • 通过 SequentialFunctional 构建模型。
    from tensorflow.keras.models import Sequential, Model
    

  3. Optimizers

    • 提供多种优化器(如 SGD、Adam、RMSprop)。
    from tensorflow.keras.optimizers import Adam
    

  4. Losses

    • 支持分类、回归等常用损失函数。
    from tensorflow.keras.losses import SparseCategoricalCrossentropy
    

  5. Metrics

    • 用于评估模型性能的指标。
    from tensorflow.keras.metrics import Accuracy
    

  6. Callbacks

    • 提供灵活工具(如 EarlyStopping、ModelCheckpoint)监控训练过程。
    from tensorflow.keras.callbacks import EarlyStopping
    


Keras 的简单示例

以下是一个使用 Keras 构建和训练简单分类模型的示例:

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.datasets import mnist

# 加载数据集
(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train, X_test = X_train / 255.0, X_test / 255.0

# 构建模型
model = Sequential([
    Flatten(input_shape=(28, 28)),         # 展平输入
    Dense(128, activation='relu'),        # 全连接层
    Dense(10, activation='softmax')       # 输出层
])

# 编译模型
model.compile(
    optimizer='adam',
    loss='sparse_categorical_crossentropy',
    metrics=['accuracy']
)

# 训练模型
model.fit(X_train, y_train, epochs=5, batch_size=32)

# 测试模型
test_loss, test_acc = model.evaluate(X_test, y_test)
print(f"Test Accuracy: {test_acc:.2f}")

运行结果 

Epoch 1/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2601 - accuracy: 0.9253
Epoch 2/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.1154 - accuracy: 0.9657
Epoch 3/5
1875/1875 [==============================] - 4s 2ms/step - loss: 0.0775 - accuracy: 0.9759
Epoch 4/5
1875/1875 [==============================] - 3s 1ms/step - loss: 0.0585 - accuracy: 0.9823
Epoch 5/5
1875/1875 [==============================] - 3s 1ms/step - loss: 0.0448 - accuracy: 0.9857
313/313 [==============================] - 0s 1ms/step - loss: 0.0784 - accuracy: 0.9761
Test Accuracy: 0.98


Keras 的高级功能

  1. 自定义层与模型

    • 子类化 tf.keras.layers.Layertf.keras.Model 来构建自定义功能。
    import tensorflow as tf
    
    class CustomLayer(tf.keras.layers.Layer):
        def __init__(self, units=32, **kwargs):
            super().__init__(**kwargs)
            self.units = units
    
        def build(self, input_shape):
            self.w = self.add_weight(shape=(input_shape[-1], self.units), initializer='random_normal', trainable=True)
            self.b = self.add_weight(shape=(self.units,), initializer='zeros', trainable=True)
    
        def call(self, inputs):
            return tf.matmul(inputs, self.w) + self.b
    

  2. 迁移学习与微调

    • 利用预训练模型(如 ResNet、BERT)进行迁移学习。
    from tensorflow.keras.applications import ResNet50
    
    base_model = ResNet50(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
    base_model.trainable = False
    

  3. Callbacks

    • 使用 EarlyStoppingTensorBoard 等工具跟踪训练过程。
  4. 分布式训练

    • 支持多 GPU 和 TPU 加速训练。

Keras 的应用领域

  1. 图像处理(如分类、目标检测、风格迁移)。
  2. 自然语言处理(如文本生成、翻译、情感分析)。
  3. 时间序列预测(如股票价格预测、天气预测)。
  4. 推荐系统(如个性化推荐)。

Keras 通过其简单、高效和模块化的设计,大大降低了深度学习模型开发的门槛,是机器学习研究和工业应用中的重要工具。


http://www.kler.cn/a/513373.html

相关文章:

  • Linux TCP 之 RTT 采集与 RTO 计算
  • 《Effective Java》学习笔记——第2部分 对象通用方法最佳实践
  • 图的基本概念
  • MFC 使用 32位带Alpha通道的位图
  • k8s集群换IP
  • Scala语言的循环实现
  • LabVIEW智能胎压监测
  • ARM-V9 CCA/RME QEMU环境搭建
  • 【leetcode 26】28.找出字符串中第一个匹配项的下标 | 实现 strStr()==❗不会❗==
  • Java数据结构——优先队列
  • 2025牛客寒假训练营1【代码】 A B D E G H J M
  • 线性回归笔记1-4
  • java依赖问题
  • VBA语言的区块链
  • 人工智能技术在冷链物流行业的应用前景
  • Java Web开发高级——单元测试与集成测试
  • Yearning开源MySQL SQL审核平台
  • 稳定的通信桥梁,CCLINKIE转ModbusTCP网关实现AGV运输的光速效应
  • 基于Python的多元医疗知识图谱构建与应用研究(上)
  • 基于Hadoop MapReduce的WordCount任务实现与部署
  • 什么是可信数据空间?有什么作用?
  • matlab构造线性相位FIR滤波器
  • 【算法】字符串之227.基本计算器 -- 双栈的变形
  • docker安装rabbitmq并启动测试页面
  • Spring AI PromptChatMemoryAdvisor
  • Docker导入镜像