欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-21 22:21:06
...

# 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)      # 显示图像

运行结果如下:

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

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

 

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

相关标签: python与深度学习