神经网络:手写数字图像识别

ops/2024/10/19 13:21:01/

一、导入相关库函数

python">import matplotlib.pyplot as plt
import tensorflow as tf
import keras
import numpy as np

二、载入mnist数据集 

使用keras.中的mnist数据集

python">(train_images, train_labels), (test_images, test_labels)=\
keras.datasets.mnist.load_data()

三、测试数据的情况,数据集图像和label标签

python">x = train_images[2]
y = train_labels[2]
plt.title('label: %i' % y)
plt.imshow(x, cmap=plt.cm.gray_r, interpolation='nearest')

四、建立神经网络模型

keras中有API帮助建立,用Sequential的AIP建立

python">model = keras.Sequential([#模型是多层的,底层是输入层,做Flatten,input_shape分辨率28*28keras.layers.Flatten(input_shape=(28,28)),#隐藏层,使用relukeras.layers.Dense(128, activation=tf.nn.relu),#输出层,10分类,数字从0~9,一共10种(选择softmax)keras.layers.Dense(10,activation=tf.nn.softmax)
])

五、将模型进行compile,优化器optimizers.Adam(),选择损失函数loss,用精度来度量

python">model.compile(optimizer=tf.optimizers.Adam(),loss='sparse_categorical_crossentropy',metrics=['accuracy'])

六、打印model,神经网络模型,三层结构

看一下神经网络模型结构:三层,输入层784,隐藏层128,输出层10

python">model.summary()

七、训练神经网络模型,精度在增长,loss减少 

epochs迭代次数,这里选择10次迭代

python">model.fit(train_images,train_labels,epochs=10)

八、评估,测试模型性能

python">test_loss,test_acc = model.evaluate(test_images, test_labels)

九、训练的模型进行预测

python">predictions = model.predict(test_images)

十、测试模型,用测试集进行

预测结果为

[0. 0. 1. 0. 0. 0. 0. 0. 0. 0.],1的index为2,预测值为2,和真实值一致,预测成功。
python">x_test = test_images[888]
y_test = test_labels[888]
y_pred = predictions[888]#打印x_test图像
plt.imshow(x_test,cmap=plt.cm.gray_r,interpolation='nearest')y_pred2 = np.around(y_pred,decimals=1
)
print(y_pred2)
output:[0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]

十一、完整代码 

python">import matplotlib.pyplot as plt
import tensorflow as tf
import keras
import numpy as np#载入mnist数据集
(train_images, train_labels), (test_images, test_labels)=\
keras.datasets.mnist.load_data()#建立神经网络模型
#keras中有API帮助建立,用Sequential的AIP建立
model = keras.Sequential([#模型是多层的,底层是输入层,做Flatten,input_shape分辨率28*28keras.layers.Flatten(input_shape=(28,28)),#隐藏层,使用relukeras.layers.Dense(128, activation=tf.nn.relu),#输出层,10分类,数字从0~9,一共10种(选择softmax)keras.layers.Dense(10,activation=tf.nn.softmax)
])#将模型进行compile,优化器optimizers.Adam(),选择损失函数loss,用精度来度量
model.compile(optimizer=tf.optimizers.Adam(),loss='sparse_categorical_crossentropy',metrics=['accuracy'])#训练神经网络模型,精度在增长,loss减少
#epochs迭代次数,这里选择10次迭代
model.fit(train_images,train_labels,epochs=10)#评估,测试模型性能
#在测试数据集上进行评估
test_loss,test_acc = model.evaluate(test_images, test_labels)#刚刚训练的模型进行预测
predictions = model.predict(test_images)x_test = test_images[888]
y_test = test_labels[888]
y_pred = predictions[888]#打印x_test图像
plt.imshow(x_test,cmap=plt.cm.gray_r,interpolation='nearest')y_pred2 = np.around(y_pred,decimals=1
)
print(y_pred2)


http://www.ppmy.cn/ops/22240.html

相关文章

亚远景科技-ASPICE评估师等级、ASPICE评估师培训和ASPICE评估项目等级简介

1. ASPICE评估师等级: ASPICE评估师等级主要包括助理评估师、主任评估师、首席评估师和评估师导师。这些等级反映了评估师在执行ASPICE评估项目时的经验和专业能力。助理评估师即小PA,主任评估师即CA,首席评估师即大PA。每一个等级都需要经过严格的培训…

不定期会议对团队开发的影响(项目管理篇)

不定期会议,即没有固定周期或事先规划的临时召集的会议,对于团队开发可能产生多种影响,既有积极的一面,也有潜在的挑战。以下是具体分析: 积极影响: 应对突发情况: 不定期会议能够迅速响应项…

苍穹外卖学习笔记(8.用户端历史订单模块,商家端订单管理模块)

目录 一、商家端订单管理模块1、查看历史订单2、查询订单详情3、取消订单4、再来一单5、代码开发6、测试 二、用户端历史订单模块1、订单搜索2、各个状态的订单数量统计3、查询订单详情4、接单5、拒单6、取消订单7、派送订单8、完成订单9、代码开发10、测试 三、校验收货地址是…

【AIGC】探索大语言模型中的词元化技术机器应用实例

科技前沿:探索大语言模型中的词元化技术及其应用实例 一、词元化技术的原理与重要性二、词元化技术的应用实例与代码展示三、词元化技术在科技热点中的应用四、总结与展望 随着人工智能技术的迅猛发展,自然语言处理领域也取得了长足的进步。其中&#xf…

upload-labs后续(14-)

图片马 在图片中加入木马,然后上传让浏览器解析,达到上传木马的目的 制作图片马:可以在notepad或者winhex中打开文件,在文件头中加入图片的文件头,再在文件末尾加入木马即可。 图片文件头如下: 1.Png图片…

简易TCP客户端和服务器端通信

客户端&#xff1a; #include<iostream> #include <winsock2.h> #include <ws2tcpip.h> #include<stdlib.h> using namespace std; #define BUF_SIZE 1024 int main() { cout << "客户端" << endl; //设置Wins…

从 sqlite 迁移到 Oracle 数据库

从 sqlite 迁移到 Oracle 数据库 0. 引言1. 代码 0. 引言 今天发现一个有意思的竞赛&#xff0c;竞赛中使用了 sqlite 数据库。 由于个人更习惯 Oracle 数据库&#xff0c;所以将 sqlite 数据库迁移到了 Oracle 数据库。 此文章记录一下迁移时使用的 Python 代码。 1. 代码…

VSCode 配置 Qt 开发环境

文章目录 1. 环境说明2. 配置系统环境变量 1. 环境说明 操作系统&#xff1a;Windows 11VSCode版本&#xff1a;1.88.1CMake版本&#xff1a;3.27.7Qt6版本&#xff1a;6.7.0(MinGW 11.2.0 64-bit) 2. 配置系统环境变量 自行根据自己的Qt安装路径配置 配置 MinGW 和 CMake C…