由于官网下载手写数字的数据集较慢,因此提供便捷下载地址如下
手写数字的数据集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