MNIST(手写数字图片识别+ubyte.gz文件)数据集下载、将MNIST数据集转化为CSV格式,并使用神经网络测试,手写0 您所在的位置:网站首页 ann文件格式打开 MNIST(手写数字图片识别+ubyte.gz文件)数据集下载、将MNIST数据集转化为CSV格式,并使用神经网络测试,手写0

MNIST(手写数字图片识别+ubyte.gz文件)数据集下载、将MNIST数据集转化为CSV格式,并使用神经网络测试,手写0

2023-08-16 02:19| 来源: 网络整理| 查看: 265

MNIST(手写数字图片识别+ubyte.gz文件)数据集下载、将数据集转化为CSV格式,并使用神经网络测试,手写0-9数字识别。 借鉴博客

     https://blog.csdn.net/Albert201605/article/details/79893585

     https://blog.csdn.net/epubit17/article/details/80009618

     https://www.sohu.com/a/228825316_99960938

目录

MNIST(手写数字图片识别+ubyte.gz文件)数据集下载、将数据集转化为CSV格式,并使用神经网络测试,手写0-9数字识别。

借鉴博客

1、下载MNIST数据集

2、将MNIST数据集转化为CSV格式

3、从手写数字图像中读取和解码数据

4、创建基本的神经网络,通过使用MNIST训练数据集进行训练,使用MNIST测试集和自己创建的手写数字图像数据对神经网络进行测试。

5、运行结果

1、下载MNIST数据集

下载链接:http://yann.lecun.com/exdb/mnist/

2、将MNIST数据集转化为CSV格式

         转化方法:下载原始数据后,置于工程目录下,解压,运行以下代码即可。

def convert(imgf, labelf, outf, n): f = open(imgf, "rb") o = open(outf, "w") l = open(labelf, "rb") f.read(16) l.read(8) images = [] for i in range(n): image = [ord(l.read(1))] for j in range(28 * 28): image.append(ord(f.read(1))) images.append(image) for image in images: o.write(",".join(str(pix) for pix in image) + "\n") f.close() o.close() l.close() convert("MNIST_data/train-images.idx3-ubyte", "MNIST_data/train-labels.idx1-ubyte", "mnist_train.csv", 60000) convert("MNIST_data/t10k-images.idx3-ubyte", "MNIST_data/t10k-labels.idx1-ubyte", "mnist_test.csv", 10000) print("Convert Finished!")

       转化结果:

3、从手写数字图像中读取和解码数据

         可以通过图像编辑或者绘画软件来创建图片,也可以通过用笔在纸上手写数字,通过拍照将手写数字变成图片格式。(在创建手写PNG图片时,需要将它们调整到28个像素乘以28个像素,这样才可以匹配MNIST数据集的图片)。

import imageio import glob import numpy import matplotlib.pyplot our_own_dataset = [] for image_file_name in glob.glob('Number4.png'): print ("加载文件:", image_file_name) # 使用文件名设置正确的标签 label = int(image_file_name[-5:-4]) # 将png文件图像转为数组 img_array = imageio.imread(image_file_name, as_gray=True) # 每张图片都由一个28 ×28 的矩阵表示,每张图片都由一个784 维的向量表示(28*28=784) # 将数组的值减去了255.0。常规而言,0指的是黑色,255指的是白色,但是,MNIST数据集使用相反的方式表示,因此将值逆转过来以匹配MNIST数据 # 从28x28重塑到包含784个值的列表,反转值 img_data = 255.0 - img_array.reshape(784) # 然后将数据缩放到范围从0.01到1.0 img_data = (img_data / 255.0 * 0.99) + 0.01 print(numpy.min(img_data)) print(numpy.max(img_data)) # 附加标签和图像数据来测试数据集 record = numpy.append(label,img_data) print(record) our_own_dataset.append(record) pass matplotlib.pyplot.imshow(our_own_dataset[0][1:].reshape(28,28), cmap='Greys', interpolation='None') print(our_own_dataset[0]) print("识别结果为:", record[0]) print(record[0])

手写数字原图:

提醒:我们要创建较小的PNG图片,将它们调整到28个像素乘以28个像素,这才可以匹配曾经用过的来自MNIST数据集的图片。可以使用Win10自带的图像编辑器做到这一点。在导入图像是确保该图像为28个像素乘以28个像素,否则会报错。

读取解析结果:

4、创建基本的神经网络,通过使用MNIST训练数据集进行训练,使用MNIST测试集和自己创建的手写数字图像数据对神经网络进行测试。

        该步骤即为创建基本的神经网络,使用MNIST训练数据集进行训练,使用MNIST测试集和自己创建的手写数字图像数据对神经网络进行测试。

具体实现过程可参考:https://download.csdn.net/download/qq_40513088/12524193

5、运行结果

手写数字源文件:

运行结果:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有