我是靠谱客的博主 多情芒果,最近开发中收集的这篇文章主要介绍MNIST手写数字识别训练集的数据识别和使用matplotlib的imshow显示一、引言二、数据集图片显示三、数据集下载四、matplotlib基础绘图命令imshow介绍五、关于pylab小结:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、引言

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'datasethandwritedigit_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的相关参数。

最后

以上就是多情芒果为你收集整理的MNIST手写数字识别训练集的数据识别和使用matplotlib的imshow显示一、引言二、数据集图片显示三、数据集下载四、matplotlib基础绘图命令imshow介绍五、关于pylab小结:的全部内容,希望文章能够帮你解决MNIST手写数字识别训练集的数据识别和使用matplotlib的imshow显示一、引言二、数据集图片显示三、数据集下载四、matplotlib基础绘图命令imshow介绍五、关于pylab小结:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部