TensorFlow 与Keras:从基础到部署的深度学习实践

在这里插入图片描述

导语

随着 TensorFlow 的发布,深度学习开发变得前所未有的简单和直观。其核心在于将 Keras 作为高级 API 深度集成,使得从模型构建、训练到最终部署的整个流程更加顺畅。本文将带领读者快速上手 TensorFlow 2.x 和 Keras,通过一个完整的实践案例,展示现代深度学习开发的标准流程。


1. ✅ 为什么选择 TensorFlow ?

TensorFlow 相比于 1.x 版本,带来了革命性的改进,极大地提升了开发体验。

  • 默认启用 Eager Execution:代码可以像普通 Python 代码一样立即执行和调试,无需构建静态计算图和 Session,极大地增强了灵活性。
  • Keras 优先tf.keras 成为构建和训练模型的标准高级 API,其模块化、可组合的特性让模型设计变得简单。
  • 简化的 API:移除了大量冗余和混乱的 API,使得代码更加清晰、易于维护。

2. 🚀 构建你的第一个神经网络

使用 tf.keras 构建模型通常从 Sequential 模型开始,它允许你像搭积木一样堆叠网络层。

定义一个简单的序贯模型

下面是一个包含一个全连接层(Dense)的简单分类模型,用于处理 MNIST 手写数字数据集。

import tensorflow as tf
from tensorflow.keras.layers import Flatten, Dense

# 创建一个 Sequential 模型
model = tf.keras.Sequential([
    # 将输入的 28x28 图像展平为一维向量
    Flatten(input_shape=(28, 28)),
    
    # 第一个全连接层,使用 ReLU 激活函数
    Dense(128, activation='relu'),
    
    # 输出层,10个神经元对应10个类别,使用 Softmax 进行概率输出
    Dense(10, activation='softmax')
])

# 打印模型结构
model.summary()

3. ⚙️ 编译模型:指定损失函数和优化器

在训练模型之前,需要通过 compile() 方法为其配置训练过程。这包括三个关键参数:

  • 优化器 (Optimizer):决定如何更新模型的权重,如 adamsgd 等。
  • 损失函数 (Loss Function):衡量模型预测值与真实值之间差距的指标,如 sparse_categorical_crossentropy 用于多分类问题。
  • 评估指标 (Metrics):用于监控训练和测试步骤的指标,如 accuracy(准确率)。
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

4. 🚂 训练与评估

配置完成后,就可以使用 fit() 方法向模型“喂”入数据进行训练了。

加载数据并训练

我们使用 Keras 内置的 MNIST 数据集作为示例。

# 加载数据集
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()

# 数据归一化,将像素值从 [0, 255] 缩放到 [0, 1]
x_train, x_test = x_train / 255.0, x_test / 255.0

# 训练模型,指定训练轮数 (epochs)
history = model.fit(x_train, y_train, epochs=5, validation_split=0.2)
评估模型性能

训练完成后,使用 evaluate() 方法在测试集上检验模型的泛化能力。

# 在测试集上评估
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print(f"\nTest accuracy: {test_acc:.4f}")

Ai 产品推荐

😳 0v0 AI 助手推荐、官网:https://0v0.pro

  • 🆓 开源模型全免费:Llama、Qwen、Deepseek 等
  • 😲 基础模型全免费:gpt-4o、o4-mini 、gpt-5-mini 等
  • ♾️ 对话真正无限制:不限时间、不限次数
  • 🫡 每周免费一个旗舰模型:本周免费:gpt-5 ,不限使用!


LLM AI API 推荐 🗨️

🖐️ 按量计算、官网:https://llm-all.pro

  • 😊 opneai 、cluade、genimi、gork 等模型:0.5:1刀 、官方 1 折
  • 🤓 国内模型 豆包、千问 、deepseek、kimi 等:2 - 6 折
  • ☺️ 除了以上模型外,还包含全球各类以上未列出的模型

👺 按次计算、官网:https://fackai.chat

  • 国内外全模型
  • 1 :100次,性价比推荐


5. 💾 保存与部署

训练好的模型需要被保存下来,以便后续使用或部署到生产环境。

保存和加载模型

Keras 提供了简单的 API 来保存整个模型(包括结构、权重和优化器状态)。

# 保存整个模型为 HDF5 文件
model.save('my_mnist_model.h5')

# 加载模型
# loaded_model = tf.keras.models.load_model('my_mnist_model.h5')
# loaded_model.summary()
部署选项
  • TensorFlow Serving:一个为生产环境设计的高性能服务系统,可以通过 RESTful 或 gRPC API 提供模型预测服务。
  • TensorFlow Lite (TFLite):用于在移动和嵌入式设备上部署模型的轻量级解决方案。
  • TensorFlow.js:用于在浏览器和 Node.js 环境中运行模型的 JavaScript 库。

总结

TensorFlow 2.x 与 Keras 的结合,为深度学习开发者提供了一条从原型设计到生产部署的平坦大道。其直观的 API 和强大的生态系统,使得任何人都可以快速进入深度学习的世界。通过本文的实践,你应该已经掌握了使用 TensorFlow 构建、训练和评估一个基本神经网络的全过程。现在,是时候开始你自己的深度学习项目了!

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐