手写数字识别mnist

简介: 本文介绍了使用Keras框架对MNIST手写数字识别数据集进行处理、建立神经网络模型、编译、训练、评估直至模型精度分析的完整流程。

第一步:加载keras中的mnist集

from keras.datasets import mnist
(train_images, train_labels),(test_images, test_labels) = mnist.load_data()

print(train_images.shape)#查看效果的,这两步可以忽略
print(test_images.shape)

熟悉一下matplotlib.pyplot数据显示

import matplotlib.pyplot as plt
plt.figure()#新建一个图层
plt.imshow(train_images[0],cmap=“gray”)
plt.show()

第二步:建立网络架构,

from keras import models
from keras import layers

层layer就像数据处理的筛子

本例子含有两个Dense层,最后是一个10路的激活层softmax层,返回一个由10个概率值组成的数组,表示10个数字类别中某一个的概率

network=models.Sequential()
network.add(layers.Dense(512,activation=‘relu’,input_shape=(28*28,)))
network.add(layers.Dense(10,activation=‘softmax’))

第三步:编译

optimizer 优化器,loss损失函数,metrics代码级数据监控

network.compile(optimizer=‘rmsprop’,loss=‘categorical_crossentropy’,metrics=[‘accuracy’])

第四步:准备图像数据和标签

train_images = train_images.reshape((60000, 28 * 28))#图像处理
train_images = train_images.astype(‘float32’) / 255
test_images = test_images.reshape((10000, 28 * 28))
test_images = test_images.astype(‘float32’) / 255

通过二维关系矩阵的方式,生成一个对应关系

from keras.utils.all_utils import to_categorical
train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)

第五步:拟合(FIT)模型

network.fit(train_images,train_labels,batch_size=64,epochs=5)

第六步:评估(EVALUATE)模型

test_loss,test_acc=network.evaluate(test_images,test_labels)

第七步:查看测试集的精度

print(‘test_acc’,test_acc)

训练精度和测试精度之间的这种差距是过拟合(overfit)造成的

相关文章
|
2月前
|
传感器 自动驾驶 算法
自动驾驶还远吗?关键看“眼睛”
自动驾驶感知系统是智能车的“眼睛”,依赖摄像头、激光雷达、毫米波雷达等传感器实现环境感知。文章详解了感知架构、主流目标检测方法(如2D/3D检测、多传感器融合)、感知挑战(如极端天气、长尾问题)及发展趋势,并结合驭势科技实践,展示了数据闭环、BEV感知、全景分割等技术进展,推动自动驾驶向全天候、全无人目标迈进。
|
7月前
|
人工智能 自然语言处理 安全
一文掌握大模型提示词技巧:从战略到战术(二)
一文掌握大模型提示词技巧:从战略到战术
470 66
|
8月前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
RT-DETR改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
302 3
RT-DETR改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
|
10月前
|
安全 Java API
Nacos 3.0 Alpha 发布,在安全、泛用、云原生更进一步
近期,我们欣喜地宣布 Nacos 3.0 的第一个版本 Nacos 3.0-ALPHA 已经发布。Nacos 3.0 的目标是在 2.0 的基础上,进一步优化安全性、易用性和标准化。同时,我们将引入更多功能,帮助用户在分布式协调、AI 大模型、云原生等多种场景中更好地使用 Nacos,以提升其广泛适应性。
462 134
|
JavaScript 前端开发
vue实现循环发起多个异步请求——Promise.all()与Promise.race()
vue实现循环发起多个异步请求——Promise.all()与Promise.race()
569 1
|
11月前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
机器学习/深度学习 运维 算法
高斯混合模型(GMM)
高斯混合模型(GMM)
|
网络协议 Linux Windows
有了这个iPerf小工具,测试UDP方便多了。
有了这个iPerf小工具,测试UDP方便多了。
660 1
|
SQL 数据库
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
这篇文章是Spring5框架的实战教程,深入讲解了如何使用JdbcTemplate进行数据库的批量操作,包括批量添加、批量修改和批量删除的具体代码实现和测试过程,并通过完整的项目案例展示了如何在实际开发中应用这些技术。
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
|
机器学习/深度学习 人工智能 算法
【人工智能】机器学习、分类问题和逻辑回归的基本概念、步骤、特点以及多分类问题的处理方法
机器学习是人工智能的一个核心分支,它专注于开发算法,使计算机系统能够自动地从数据中学习并改进其性能,而无需进行明确的编程。这些算法能够识别数据中的模式,并利用这些模式来做出预测或决策。机器学习的主要应用领域包括自然语言处理、计算机视觉、推荐系统、金融预测、医疗诊断等。
322 1