MNIST数据集的介绍以及下载使用

# 1.MNIST数据集简介

1.MNIST数据集即MNIST手写数字图像集,是机器学习领域非常经典的一个数据集。

2.MNIST数据集由0到9的数字图像构成。训练图像有六万张,测试图像有一万张。这些图像可以用于学习和推理。

3.MNIST的图像数据是28px*28px的灰度图像,各个像素的取值在0到255之间。每个图像都相应地标有“0”、“1”、“2”、“3”、“4”、“5”...等标签。

4.MNIST数据集的一般使用方法:
先用训练图像进行学习,再用学习到的模型度量能在多大程度上对测试图像进行正确的分类。

# 2.MNIST数据集的下载与使用

《深度学习入门——基于Python的理论与实现》(斋藤康毅著,陆宇杰译)一书中提供了相关源代码的下载网址(http://www.ituring.com.cn/book/1921)。MNIST数据集的下载代码在dataset/mnist.py文件中,以下例子(源代码在ch03/mnist_show中)是对MNIST数据集的简单使用与解析。

# coding: utf-8
# 这里是对便利脚本dataset/mnist.py中load_mnist()函数的使用

import sys, os              # os模块用于提供系统级别的操作,sys模块用于提供对解释器相关的操作
sys.path.append(os.pardir)  # sys.path.append()用于添加系统环境变量,os.pardir就是当前目录的父目录
import numpy as np
from dataset.mnist import load_mnist            # 因为已添加父目录为系统环境变量,所以此处可顺利导入父目录下dataset.mnist中的函数
from PIL import Image

# 用于显示图片的函数
def img_show(img):
    pil_img = Image.fromarray(np.uint8(img))    # 将数组转换成图像
    pil_img.show()                              # 显示图像

(x_train, t_train), (x_test, t_test) = load_mnist(flatten=True, normalize=False) 
 # 这里通过load_mnist函数读入了MNIST数据                                                                                
 # 该函数以(训练图像,训练标签),(测试图像,测试标签)的形式返回读入的MNIST数据																				  
 # 该函数可设置三个参数:normalize,flatten,one_hot_label																				  
 # normalize=true表示将输入图像像素正规化为0.0到1.0的值;反之,图像像素保持原来的0到255						  
 # flatten=true表示输入图像会保存为由784个元素构成的一维数组;反之,图像保存为1*28*28的三维数组						  
 # one_hot_label=true表示标签保存为one_hot形式(仅正确解标签为1其余为0的数组形式:[0,0,1,0,0,0,0,0,0,0]);反之,标签简单保存。(如:1、2、3...)


																				   
img = x_train[0]   # 将第一张训练图像存至img变量
label = t_train[0] # 将第一个训练标签存至label变量
print(label)       # 打印出该训练标签

print(img.shape)   # 打印出该训练图像的存储形状(像素数组存储格式)
img = img.reshape(28, 28)  # 利用reshape函数把图像(像素数组)的形状变为原来的尺寸
print(img.shape)   # (28, 28)

img_show(img)      # 显示图像

运行结果如下:

# 本博客参考了《深度学习入门——基于Python的理论与实现》(斋藤康毅著,陆宇杰译),特在此声明。

发布了25 篇原创文章 · 获赞 6 · 访问量 1972

猜你喜欢

转载自blog.csdn.net/weixin_44711653/article/details/104098225
今日推荐