Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【深度学习入门实战】基于Keras的手写数字识别实战(附完整可视化分析)

【深度学习入门实战】基于Keras的手写数字识别实战(附完整可视化分析)

作者头像
机器学习司猫白
发布于 2025-02-12 01:37:42
发布于 2025-02-12 01:37:42
29302
代码可运行
举报
文章被收录于专栏:机器学习实战机器学习实战
运行总次数:2
代码可运行

项目概述

本案例使用经典的MNIST手写数字数据集,通过Keras构建全连接神经网络,实现0-9数字的分类识别。文章将包含:

  • 关键概念图解
  • 完整实现代码
  • 训练过程可视化
  • 模型效果深度分析
MNIST样本展示
MNIST样本展示

环境准备

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
import matplotlib.pyplot as plt
from tensorflow import keras
from tensorflow.keras import layers
from sklearn.metrics import confusion_matrix
import seaborn as sns

三、数据加载与探索

3.1 加载数据集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 加载内置MNIST数据集
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()

print("训练集形状:", x_train.shape)  
print("测试集形状:", x_test.shape)   

Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz 11490434/11490434 ━━━━━━━━━━━━━━━━━━━━ 5s 0us/step 训练集形状: (60000, 28, 28) 测试集形状: (10000, 28, 28)

可以看到图像是28*28,每张图像一共有784个像素点。

3.2 数据可视化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plt.figure(figsize=(10,5))
for i in range(15):
    plt.subplot(3,5,i+1)
    plt.imshow(x_train[i], cmap='gray')
    plt.title(f"Label: {
     y_train[i]}")
    plt.axis('off')
plt.tight_layout()
plt.savefig('mnist_samples.png', dpi=300)
plt.show()
在这里插入图片描述
在这里插入图片描述

四、数据预处理

4.1 数据归一化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 将像素值缩放到0-1范围
x_train = x_train.astype("float32") / 255
x_test = x_test.astype("float32") / 255

# 将图像展平为784维向量
x_train = x_train.reshape(-1, 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于keras的手写数字识别_数字识别
Flatten层: Flatten层用来将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡,举例如下
全栈程序员站长
2022/10/05
2K0
Keras入门级MNIST手写数字识别超级详细教程
文件下载:https://download.csdn.net/download/sxf1061700625/19229794
小锋学长生活大爆炸
2021/05/30
6.7K0
Keras入门级MNIST手写数字识别超级详细教程
用Keras通过Python进行卷积神经网络的手写数字识别
图像识别是深度学习技术的一个普遍具有的功能。
青橙.
2018/02/07
6K0
用Keras通过Python进行卷积神经网络的手写数字识别
Keras-深度学习-神经网络-手写数字识别模型
使用到的数据集为IMDB电影评论情感分类数据集,该数据集包含 50,000 条电影评论,其中 25,000 条用于训练,25,000 条用于测试。每条评论被标记为正面或负面情感,因此该数据集是一个二分类问题。
叶茂林
2023/07/30
2960
Keras-深度学习-神经网络-手写数字识别模型
深度学习|Keras识别MNIST手写数字(一)
MNIST数据集是收集的手写字体,为单色图像,共有训练集60000项,测试数据集10000项。 建模方法我们使用最简单的神经网络模型,多层感知器(MLP)。
罗罗攀
2019/02/22
1.1K0
深度学习|Keras识别MNIST手写数字(一)
机器学习-用keras做cnn手写数字识别
在用全连接做手写数字识别的时候,准确率有97%了,但是还是会出现一些测试图片没有预测对,出来更好的去优化参数,现在就直接改进神经网络的模型,用cnn去训练数据。
sjw1998
2019/09/28
1K0
手写数字图像数据集MNIST
注:本文选自机械工业出版社出版的《从零开始构建深度前馈神经网络(Python+TensorFlow 2.x)》一书,略有改动。经出版社授权刊登于此。
龙哥
2022/03/09
1.1K0
手写数字图像数据集MNIST
100天搞定机器学习|day39 Tensorflow Keras手写数字识别
有些教程会推荐安装nightly,它适用于在一个全新的环境下进行TensorFlow的安装,默认会把需要依赖的库也一起装上。我使用的是anaconda,本文我们安装的是纯净版的tensorflow,非常简单,只需打开Prompt:
Ai学习的老章
2019/08/09
5670
100天搞定机器学习|day39 Tensorflow Keras手写数字识别
入门项目数字手写体识别:使用Keras完成CNN模型搭建
对于图像分类任务而言,卷积神经网络(CNN)是目前最优的网络结构,没有之一。在面部识别、自动驾驶、物体检测等领域,CNN被广泛使用,并都取得了最优性能。对于绝大多数深度学习新手而言,数字手写体识别任务可能是第一个上手的项目,网络上也充斥着各种各样的成熟工具箱的相关代码,新手在利用相关工具箱跑一遍程序后就能立刻得到很好的结果,这时候获得的感受只有一个——深度学习真神奇,却没能真正了解整个算法的具体流程。本文将利用Keras和TensorFlow设计一个简单的二维卷积神经网络(CNN)模型,手把手教你用代码完成MNIST数字识别任务,便于理解深度学习的整个流程。
用户3578099
2019/08/16
9150
基于Keras+CNN的MNIST数据集手写数字分类
Keras官方github链接:https://github.com/keras-team/keras 官方的口号是Keras: Deep Learning for humans,中文叫做Keras是给人使用的深度学习开发框架,其意义是Keras是一个高度集成的开发框架,其中的API调用很简单。 Keras用python语言编写,在tensorflow、cntk、theano这3种框架的基础上运行。 本文是学习github源码的笔记,源码链接:https://github.com/keras-team/keras/blob/master/examples/cifar10_cnn.py
潇洒坤
2018/10/09
2.5K0
基于Keras+CNN的MNIST数据集手写数字分类
使用 MNIST 集入门 Tensoflow(1)
在入门之前,我们需要开发工具,本文使用 JupyterLab,可以用 conda 或者 pip 方式安装。
coding01
2021/02/24
4290
使用Python实现深度学习模型:智能医疗影像识别与诊断
智能医疗影像识别与诊断是现代医疗技术的重要应用,通过深度学习模型,可以自动分析和识别医疗影像,提高诊断的准确性和效率。本文将介绍如何使用Python和深度学习技术来实现智能医疗影像识别与诊断。
Echo_Wish
2024/08/19
2290
使用Python实现深度学习模型:智能医疗影像识别与诊断
使用Keras创建一个卷积神经网络模型,可对手写数字进行识别
在过去的几年里,图像识别研究已经达到了惊人的精确度。不可否认的是,深度学习在这个领域击败了传统的计算机视觉技术。 将神经网络应用于MNIST的数据集以识别手写的数字这种方法将所有的图像像素传输到完全连接的神经网络。该方法在测试集上的准确率为98.01%。这个成功率虽然看上去不错,但不是完美的。 应用卷积神经网络可以产生更成功的结果。与传统的方法相比,重点部分的图像像素将被传输到完全连接的神经网络,而不是所有的图像像素。一些滤镜应该被应用到图片中去检测重点部分的像素。 Keras是一个使用通用深度学习框架的A
AiTechYun
2018/03/02
1K0
使用Keras创建一个卷积神经网络模型,可对手写数字进行识别
使用Python实现深度学习模型:智能医疗影像分析
随着人工智能技术的飞速发展,深度学习在医疗领域的应用越来越广泛。智能医疗影像分析是其中一个重要的应用方向,通过深度学习模型,可以自动分析和识别医疗影像,提高诊断的准确性和效率。本文将详细介绍如何使用Python实现一个深度学习模型,用于智能医疗影像分析。
Echo_Wish
2024/09/09
3890
使用Python实现深度学习模型:智能医疗影像分析
深度学习入门数据集--2.fasion-mnist数据集
数据可以从git仓库上下载,https://github.com/zalandoresearch/fashion-mnist fasion-mnist 作为tensorflow分类教程数据,通过访问链接可以获得更多内容https://www.tensorflow.org/tutorials/keras/basic_classification
birdskyws
2019/03/06
1.8K0
(数据科学学习手札44)在Keras中训练多层感知机
  Keras是有着自主的一套前端控制语法,后端基于tensorflow和theano的深度学习框架,因为其搭建神经网络简单快捷明了的语法风格,可以帮助使用者更快捷的搭建自己的神经网络,堪称深度学习框架中的sklearn,本文就将基于Keras,以手写数字数据集MNIST为演示数据,对多层感知机(MLP)的训练方法进行一个基本的介绍,而关于多层感知机的相关原理,请移步数据科学学习手札34:https://www.cnblogs.com/feffery/p/8996623.html,本文不再赘述。
Feffery
2018/07/29
1.5K0
人工智能-深度学习-手写数字识别[通俗易懂]
手写数字识别的特征集是一组数值为0-9,大小为 28 * 28 矩阵的图片, 标签为与之对应的数字:
全栈程序员站长
2022/10/05
5510
人工智能-深度学习-手写数字识别[通俗易懂]
MLK | Keras 入门深度学习逢看必会
Keras作为深度学习工具,对于 初学者还是蛮友好的,在安装前,我们要知道Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。因此我们安装Keras前,就必须安装相关的依赖包。
Sam Gor
2019/08/09
6840
MLK | Keras 入门深度学习逢看必会
Keras学习笔记——Hello Keras
目前最流行的框架莫过于Tensorflow了,但是只要接触过它的人,就知道它使用起来是多么让人恐惧。Tensorflow对我们来说,仿佛是一门高深的Deep Learning学习语言,需要具备很深的机器学习和深度学习功底,才能玩得转。
用户1154259
2018/07/31
7120
深度学习 —— 使用TensorFlow和Keras实现MLP进行数字识别
早上好,朋友们,今天我们来继续充电。我们都知道多层感知机(Multilayer Perceptron, MLP)是深度神经网络的一种基本形式,它主要由输入层、一个或多个隐藏层以及输出层组成。MLP通过非线性激活函数(如ReLU、sigmoid或tanh)引入非线性,使得模型能够学习到数据中的复杂特征。今天我们就来使用TensorFlow和Keras实现MLP进行数字识别。
china马斯克
2025/03/18
1420
推荐阅读
相关推荐
基于keras的手写数字识别_数字识别
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验