基于TensorFlow实现MNIST手写体数字识别

1. 背景描述

1.1 数据源介绍

数据源说明:60000训练集 + 10000测试集
图中的每个数字都是[28,28]的二阶数组表示,每个位点上的值是颜色的深度[0-255] ~ [白色-黑色]。根据规范化处理,我们后面会将灰度值缩放到[0,1]。
在这里插入图片描述
使用程序获取数据

from keras.datasets import mnist
# 注意keras的默认路径是~/.keras/datasets,下面的数据会自动从S3上下载到~/.keras/datasets/mnist/mnist.npz路径下进行加载
(x_train, y_train), (x_test, y_test) = mnist.load_data(path='mnist/mnist.npz')
import matplotlib.pyplot as plt

fig = plt.figure()
for i in range(0,15,1):
    plt.subplot(3,6,i+1) # 绘制前15个手写体数字,以3行6列子图形式展示
    plt.tight_layout() # 自动适配
    plt.imshow(x_train[i], cmap='Greys') # 使用灰色显示像素灰度值
    plt.ti
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,TensorFlow可以使用卷积神经网络(CNN)来实现MNIST手写数字识别。CNN是一种在图像处理和计算机视觉领域非常流行的神经网络结构,可以有效地提取图像中的特征并进行分类。 在TensorFlow中,可以使用tf.keras API构建CNN模型。以下是一个简单的CNN模型示例,用于识别MNIST手写数字: ``` python import tensorflow as tf # 加载MNIST数据集 mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() # 对数据进行预处理 x_train, x_test = x_train / 255.0, x_test / 255.0 # 构建CNN模型 model = tf.keras.models.Sequential([ tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Conv2D(64, (3, 3), activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Conv2D(64, (3, 3), activation='relu'), tf.keras.layers.Flatten(), tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ]) # 编译模型 model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(x_train.reshape(-1, 28, 28, 1), y_train, epochs=5, validation_data=(x_test.reshape(-1, 28, 28, 1), y_test)) # 评估模型 model.evaluate(x_test.reshape(-1, 28, 28, 1), y_test) ``` 该模型包括三个卷积层和两个全连接层,其中每个卷积层后面跟随一个最大池化层。该模型可以在MNIST测试集上达到约99%的准确率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值