MNIST手写数字识别训练集的数据识别和使用matplotlib的imshow显示

一、引言

MNIST数据集是机器学习领域中非常经典的一个数据集,由60000个训练样本和10000个测试样本组成,每个样本都是一张28 * 28像素的灰度手写数字图片。这个数据集在网上比较容易下载。

最近几天受某位认真学习神经网络的大佬委托,辗转弄到了MNIST数据集的两个较小自己的数据,这2个较小的数据在国内无法下载,本人也是托人弄到了。

二、数据集图片显示

数据集弄到后,研究了一下格式,每个数据集文件由多行文本构成,每行文本的第一个为对应的数字文本值,后面则是该数字手写图像的28*28大小的各位数值对应的文本值。

为此写了段代码进行数据集数据的手写数字图片显示,具体代码如下:

import numpy as np
import matplotlib.pyplot as plt
import pylab

def loadDataSet(fileName):
    data_file = open(fileName,'r')
    data_list = data_file.readlines()
    data_file.close()
    for line in data_list:
        all_values = line.split(',')
        image_array = np.asfarray(all_values[1:]).reshape((28,28))
        fig = plt.figure()
        fig.canvas.set_window_title(f'{all_values[0]}')
        plt.imshow(image_array,cmap='Greys',interpolation='None') 
        pylab.show()

loadDataSet(r'dataset\handwritedigit_test_10.csv')

执行结果部分截图:

三、数据集下载

上面说到这2个测试数据集国内无法下载,为了方便大家,博主研究后自己仿照该数据集生成了对应的数据集,已经上传到资源中,请大家点击手写数字识别训练小型数据集进行下载。

四、matplotlib基础绘图命令imshow介绍

上面的代码用到了matplotlib基础绘图命令imshow用于显示图形,

使用plt.imshow在坐标轴上展示图片,坐标设置坐标默认是从上到下,从左到右。

imshow主要参数及含义如下:

1、cmap是colormap的简称,用于指定渐变色

默认的值为viridis, 在matplotlib中,内置了一系列的渐变色,用法如下 :plt.imshow(data, cmap='Greens')

2、aspect用于指定热图的单元格的大小

默认值为equal,此时单元格用于是一个方块,当设置为auto时,会根据画布的大小动态调整单元格的大小,用法如下:

plt.imshow(data, aspect='auto')

3、alpha参数用于指定透明度

用法如下:plt.imshow(data, alpha=0.8)

4、orign参数指定绘图时的方向

默认值为upper,  此时图的右上角为(0, 0), 当设置为lower时,图的左下角为(0,0), 用法如下:plt.imshow(data, origin='lower')

5、vmin和vmax参数用于限定数值的范围

只将vmin和vmax之间的值进行映射,用法如下:

plt.imshow(data, vmin=-0.8, vmax=0.8)

6、interprolation插值方式

在日常使用而言,nearest和None是插值应用的最多的。不同取值含义请参考网上的其他资料。

7、extent参数指定热图x轴和y轴的极值

取值为一个长度为4的元组或列表,其中,前两个数值对应x轴的最小值和最大值,后两个参数对应y轴的最小值和最大值,用法如下:

plt.imshow(data, extent=(-0.5, 4.5, 4.5, -0.5))

另外上面代码中还使用了matplotlib的figure用于获得图形窗口好进行操作,使用set_window_title设置图形窗口的标题(在此设置为显示手写数字的label)。

五、关于pylab

pylab是用于解决交互式环境下无法显示matplotlib图形窗口的问题,详细请参考某位大佬的介绍《matplotlib的imshow在Python shell IDLE环境无法显示图像问题》。

小结:

本文介绍了MNIST手写数字识别训练集以及显示对应图像的方法以及代码,并重点介绍了matplotlib基础绘图命令imshow的相关参数。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CP猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值