神经网络——实现MNIST数据集的手写数字识别

本文介绍了使用MNIST手写数字数据集训练神经网络的过程,包括数据预处理、构建目标矩阵、网络设计与训练。通过调整学习率、训练次数和网络结构,提高模型识别正确率。并提供了使用自己手写数字测试模型的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于官网下载手写数字的数据集较慢,因此提供便捷下载地址如下

手写数字的数据集MNIST下载:https://download.csdn.net/download/gaoyu1253401563/10891997

数据集包含如下:

一、使用小规模数据集进行神经网络的训练和测试

数据集:

              mnist_train_100.csv   :100个样本

              mnist_test_10.csv       :10个样本

1、数据集分析

如下为mnist_train_100.csv开始的2-3行:

    存储数据的文件成为CSV文件,每一个吗值都是由逗号分隔,对于每行(最左边有行号)的数值,开头的第一个在值是标签,即书写 者希望表示的数字,如第一行的 “5”、第二行的 “0”。随后的784个值,由逗号分隔,是手写数字的像素值,像素数组的尺寸是28*28(即784),这784个像素值是手写数字的28*28的图片对应的784个位置的像素值。

注意:正常情况下0指的是黑色,255指的是白色,但是MNIST数据集使用相反的方式表示。

通过以下程序根据数据显示图片。

# 读入手写字体数据集(小数据集:mnist_train_100.csv)
import numpy as np
import matplotlib.pyplot as plt

data_file = open("mnist_dataset/mnist_train_100.csv", 'r')
data_list = data_file.readlines()
data_file.close()

all_values = data_list[1].split(',')
#np.asfarray()函数:返回转换为float类型的数组
image_array = np.asfarray(all_values[1:]).reshape((28,28))
plt.imshow(image_array, cmap = 'Greys', interpolation = 'None')


                            

 

2、数据集中数据的处理

   需要做的第一件事是将输入颜色值从较大的0到255的范围,缩放到较小的0.01到1.0的范围,选择0.01作为范围的最小值,是为了避免0值输入最终会造成权重更新的失败。

scaled_input = (np.asfarray(all_values[1:]) / 255.0 * 0.99) + 0.01
print(scaled_input)

输出结果如下:                             

[0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.208      0.62729412 0.99223529 0.62729412 0.20411765
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.19635294 0.934
 0.98835294 0.98835294 0.98835294 0.93011765 0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.21964706 0.89129412 0.99223529 0.98835294 0.93788235
 0.91458824 0.98835294 0.23129412 0.03329412 0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.04882353 0.24294118 0.87964706
 0.98835294 0.99223529 0.98835294 0.79423529 0.33611765 0.98835294
 0.99223529 0.48364706 0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.64282353 0.98835294 0.98835294 0.98835294 0.99223529
 0.98835294 0.98835294 0.38270588 0.74376471 0.99223529 0.65835294
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.208      0.934
 0.99223529 0.99223529 0.74764706 0.45258824 0.99223529 0.89517647
 0.19247059 0.31670588 1.         0.66223529 0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.19635294 0.934      0.98835294 0.98835294 0.70494118
 0.05658824 0.30117647 0.47976471 0.09152941 0.01       0.01
 0.99223529 0.95341176 0.20411765 0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.15752941 0.65058824
 0.99223529 0.91458824 0.81752941 0.33611765 0.01       0.01
 0.01       0.01       0.01       0.01       0.99223529 0.98835294
 0.65058824 0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.03717647 0.70105882 0.98835294 0.94176471 0.28564706
 0.08376471 0.11870588 0.01       0.01       0.01       0.01
 0.01       0.01       0.99223529 0.98835294 0.76705882 0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.23129412
 0.98835294 0.98835294 0.25458824 0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.99223529 0.98835294 0.76705882 0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.77870588 0.99223529 0.74764706
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       1.         0.99223529
 0.77094118 0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.30505882 0.96505882 0.98835294 0.44482353 0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.99223529 0.98835294 0.58458824 0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.34       0.98835294
 0.90294118 0.10705882 0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.03717647 0.53411765
 0.99223529 0.73211765 0.05658824 0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.34       0.98835294 0.87576471 0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.03717647 0.51858824 0.98835294 0.88352941 0.28564706
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.34       0.98835294 0.57294118 0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.19635294 0.65058824
 0.98835294 0.68164706 0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.34388235 0.99223529
 0.88352941 0.01       0.01       0.01       0.01       0.01
 0.01       0.45258824 0.934      0.99223529 0.63894118 0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.34       0.98835294 0.97670588 0.57682353
 0.19635294 0.12258824 0.34       0.70105882 0.88352941 0.99223529
 0.87576471 0.65835294 0.22741176 0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.34       0.98835294 0.98835294 0.98835294 0.89905882 0.84470588
 0.98835294 0.98835294 0.98835294 0.77094118 0.51470588 0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.11870588 0.78258824
 0.98835294 0.98835294 0.99223529 0.98835294 0.98835294 0.91458824
 0.57294118 0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.10705882 0.50694118 0.98835294
 0.99223529 0.98835294 0.55741176 0.15364706 0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01       0.01       0.01       0.01
 0.01       0.01       0.01      
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值