0

0

Keras:通过详细示例了解基础知识

碧海醫心

碧海醫心

发布时间:2024-10-21 08:06:24

|

1256人浏览过

|

来源于dev.to

转载

keras:通过详细示例了解基础知识

开发者们大家好,

如果您是深度学习新手,您可能遇到过 keras 这个名字。但它到底是什么?它是如何工作的?在这篇文章中,我将从头开始解释所有内容,并向您展示一个使用 keras 构建简单深度学习模型的分步示例。我还将解释诸如 mnist 数据集 之类的关键概念,以便您可以轻松理解!

1.什么是keras?

keras 是一个用 python 编写的开源高级神经网络 api。它允许开发人员使用用户友好的界面快速轻松地构建深度学习模型。 keras 位于 tensorflow 等更复杂的深度学习框架之上,让您可以专注于构建模型,而不会被底层复杂性所困扰。

2. 为什么使用 keras?

  • 易于使用:keras 的设计易于阅读和理解,这非常适合初学者。
  • 模块化:它是高度模块化的,这意味着您可以像积木一样将模型组合在一起。
  • 多后端支持:keras 可以在 tensorflow、theano 或 cntk 之上运行,使其非常灵活。
  • 快速原型:只需几行代码即可构建、编译和训练深度学习模型。

3.什么是mnist?

mnist 数据集 是机器学习领域最著名的数据集之一。它包含 70,000 张手写数字 (0-9) 图像。每个图像都是灰度图片,大小为 28x28 像素。目标是将这些图像分类为十个数字类别之一。

以下是 mnist 数据集中的一些数字示例:

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]

使用 keras 时,您经常会看到教程中使用 mnist 数据集,因为它简单、易于理解,并且非常适合测试新模型。


4. 使用 keras 构建简单的神经网络(逐步)

现在让我们使用 keras 构建一个简单的神经网络来对这些手写数字进行分类。我们将一步步进行。

第 1 步:安装 tensorflow(keras 与 tensorflow 捆绑在一起)

首先,您需要安装 tensorflow,因为 keras 是最新版本中 tensorflow 的一部分。您可以通过 pip 安装它:

pip install tensorflow

第2步:导入所需的库

我们将导入构建和训练模型所需的 tensorflow 和 keras 特定库。

import tensorflow as tf
from tensorflow.keras import layers, models

这里,tensorflow.keras 是 tensorflow 中的 keras api。

步骤 3:加载 mnist 数据集

keras 提供了对 mnist 等数据集的轻松访问。我们将加载数据集并将其分为训练集和测试集。

# load the mnist dataset
mnist = tf.keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()

在此步骤中,train_images 和 train_labels 保存训练数据,而 test_images 和 test_labels 保存测试数据。

Face++旷视
Face++旷视

Face⁺⁺ AI开放平台

下载

train_images中的每张图像都是28x28像素的灰度图像,train_labels包含每张图像对应的数字标签(0-9)。

步骤 4:预处理数据

接下来,我们需要对图像的像素值进行归一化,以使模型训练更加高效。图像中的每个像素值都在 0 到 255 之间。我们将图像除以 255,将这些值缩放到 0 到 1 之间。

# normalize pixel values to be between 0 and 1
train_images = train_images / 255.0
test_images = test_images / 255.0

第 5 步:构建模型

现在让我们使用 keras 构建我们的神经网络。我们将创建一个顺序模型,它允许我们将层堆叠在另一个之上。

# build the model
model = models.sequential([
    layers.flatten(input_shape=(28, 28)),      # flatten the 28x28 images into a 1d vector of 784 pixels
    layers.dense(128, activation='relu'),      # add a fully-connected (dense) layer with 128 neurons
    layers.dense(10, activation='softmax')     # output layer with 10 neurons (one for each digit 0-9)
])
  • flatten:flatten 层将 28x28 2d 图像转换为 784 个值的 1d 数组。
  • dense:dense 层是全连接层。这里我们的隐藏层有 128 个神经元,输出层有 10 个神经元(因为我们有 10 个数字类)。我们使用 relu 作为隐藏层的激活函数,使用 softmax 作为输出层。

第 6 步:编译模型

接下来,我们需要编译模型。这是我们指定优化器损失函数评估指标
的地方

# compile the model
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
  • adam 优化器:这是一种用于训练深度学习模型的流行优化器。
  • 稀疏分类交叉熵:此损失函数用于像我们这样的多类分类问题。
  • 准确性:我们将使用准确性作为评估模型性能的指标。

第 7 步:训练模型

现在,我们准备好训练模型了!我们将对其进行 5 epochs 训练(即模型将遍历整个训练数据集 5 次)。

# train the model
model.fit(train_images, train_labels, epochs=5)

第 8 步:评估模型

模型训练完成后,我们可以评估其在测试数据上的性能。

# Evaluate the model
test_loss, test_acc = model.evaluate(test_images, test_labels)

print(f'Test accuracy: {test_acc}')

这将为我们提供模型在测试数据集上的准确性。


5. 幕后发生了什么?

简单来说:

  1. 数据预处理:我们对数据进行归一化,使训练更加高效。
  2. 模型定义:我们使用顺序 api 构建了一个简单的前馈神经网络。
  3. 编译:我们选择了正确的损失函数和优化器来指导模型的学习。
  4. 训练:模型学会了通过多次遍历数据集将图像映射到数字。
  5. 评估:最后,我们检查了模型对未见过的数据的泛化程度。

6. 下一步该何去何从?

keras 简化了构建和训练神经网络的过程,使其成为初学者的理想起点。一旦您熟悉了基本模型,您就可以尝试更复杂的架构,例如卷积神经网络(cnn)循环神经网络(rnn)

随意使用 keras 更深入地探索深度学习世界,尝试不同的模型,并突破可能的界限!


到目前为止,您对 keras 有何看法?

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

373

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

437

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

804

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

371

2025.07.23

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

448

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

606

2023.08.10

Python AI机器学习PyTorch教程_Python怎么用PyTorch和TensorFlow做机器学习
Python AI机器学习PyTorch教程_Python怎么用PyTorch和TensorFlow做机器学习

PyTorch 是一种用于构建深度学习模型的功能完备框架,是一种通常用于图像识别和语言处理等应用程序的机器学习。 使用Python 编写,因此对于大多数机器学习开发者而言,学习和使用起来相对简单。 PyTorch 的独特之处在于,它完全支持GPU,并且使用反向模式自动微分技术,因此可以动态修改计算图形。

27

2025.12.22

Python 深度学习框架与TensorFlow入门
Python 深度学习框架与TensorFlow入门

本专题深入讲解 Python 在深度学习与人工智能领域的应用,包括使用 TensorFlow 搭建神经网络模型、卷积神经网络(CNN)、循环神经网络(RNN)、数据预处理、模型优化与训练技巧。通过实战项目(如图像识别与文本生成),帮助学习者掌握 如何使用 TensorFlow 开发高效的深度学习模型,并将其应用于实际的 AI 问题中。

192

2026.01.07

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

69

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 5万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号