DOWNLOAD THE MNIST DATABASE
MNIST数据集有60000个示例的训练集和10000个示例的测试集。它是NIST提供的更大集合的子集。数字已经过大小标准化,并在固定大小的图像中居中。它是一个很好的数据库,为那些想尝试学习技术和模式识别方法的人对现实世界的数据,同时花费最小的努力在预处理和格式化。
Python 3.8.10
Package Version
----------------------- -------------------
tensorflow-gpu 2.5.0
# !/usr/bin/env python
# -*- coding: utf-8 -*-
import os, gzip, struct, PIL, numpy, random
import matplotlib.pyplot as pyp
import numpy.random as ran
"""
读取MNIST数据集。
"""
def read_mnist(root: str, noise=False):
"""读取整个MNIST数据集
Args:
root (str): MNIST数据集的`train-images-idx3-ubyte.gz`、`train-labels-idx1-ubyte.gz`、`t10k-images-idx3-ubyte.gz`、`t10k-labels-idx1-ubyte.gz`四个`.gz`文件所在目录。
noise (bool, optional): 描述是否添加噪声. 默认`False`。
Returns:
tuple: 训练集图片、训练集标签、测试集图片、测试集标签、图片尺寸。
"""
TRAIN_X_FILENAME = 'train-images-idx3-ubyte.gz' # 训练集图片
TRAIN_Y_FILENAME = 'train-labels-idx1-ubyte.gz' # 训练集标签
TEST_X_FILENAME = 't10k-images-idx3-ubyte.gz' # 测试集图片
TEST_Y_FILENAME = 't10k-labels-idx1-ubyte.gz' # 测试集标签
STEP = 4 # 4个字节一起读取
MODE = &#