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

一、导入相关库函数

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*28
    keras.layers.Flatten(input_shape=(28,28)),
    #隐藏层,使用relu
    keras.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*28
    keras.layers.Flatten(input_shape=(28,28)),
    #隐藏层,使用relu
    keras.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)
相关推荐
老白说数智化升级4 分钟前
AI与人工如何并行,Operation Agent Brain如何让制造运营持续优化?
人工智能·制造
小小测试开发4 分钟前
AI 安全测试:腾讯开源 A.I.G 平台拆解——2000+ CVE 规则与 LLM 审计的双引擎协作
人工智能·开源
guwentian11 分钟前
从0到1手写 AI Agent Harness:为什么护城河不在模型,而在工程外壳
人工智能·python·安全·deepseek·harness
独隅12 分钟前
从 Copilot 到 Agent:AI 驱动下的开发工作流重构实战
人工智能·重构·copilot
Summer-Bright12 分钟前
独立 AI 浏览器之死与「内嵌化」之生:Atlas 关停、Comet 免费化、豆包虚拟桌面,入口之争的终局
人工智能·ai·ai 浏览器
FYKJ_201014 分钟前
django学习成绩预警系统10905
java·javascript·spring boot·python·spark·django·php
淳悦qiqi14 分钟前
2026依托技术优势高准确率语音识别软件多场景让信息整理更省事更清晰
人工智能·语音识别
云浪15 分钟前
给大模型装上"手":三分钟看懂 AI Agent 的 Tool 工具调用
javascript·人工智能·node.js
YHHLAI18 分钟前
实战 Vibe Coding:用 AI 从零搭一个 React 待办清单
前端·人工智能·react.js
电化学仪器白超21 分钟前
梅特勒-托利多自动滴定管产品线全览
网络·python·单片机