pip install mnist
pip show mnist
Name: mnist
Version: 0.2.2
Summary: Python utilities to download and parse the MNIST dataset
Home-page: https://github.com/datapythonista/mnist
Author: Marc Garcia
Author-email: garcia.marc@gmail.com
License: BSD
Location: d:\python39\lib\site-packages
Requires: numpy
https://opendatalab.com/MNIST/
D:\python>TREE /F data
D:\PYTHON\DATA
└─MNIST
└─raw
t10k-images-idx3-ubyte
t10k-images-idx3-ubyte.gz
t10k-labels-idx1-ubyte
t10k-labels-idx1-ubyte.gz
train-images-idx3-ubyte
train-images-idx3-ubyte.gz
train-labels-idx1-ubyte
train-labels-idx1-ubyte.gz
修改 D:\Python39\Lib\site-packages\mnist\init.py
找到第143行:fname = download_file(fname, target_dir=target_dir, force=force) 注释掉,修改为:
python
def download_and_parse_mnist_file(fname, target_dir=None, force=False):
"""Download the IDX file named fname from the URL specified in dataset_url
and return it as a numpy array.
Parameters
----------
fname : str
File name to download and parse
target_dir : str
Directory where to store the file
force : bool
Force downloading the file, if it already exists
Returns
-------
data : numpy.ndarray
Numpy array with the dimensions and the data in the IDX file
"""
#fname = download_file(fname, target_dir=target_dir, force=force)
if target_dir == None:
target_dir = './data/MNIST/raw'
fname = os.path.join(target_dir, fname)
fopen = gzip.open if os.path.splitext(fname)[1] == '.gz' else open
with fopen(fname, 'rb') as fd:
return parse_idx(fd)
编写一个测试脚本 mnist_test.py 如下
python
import mnist
print('mnist train shape:')
train_X = mnist.train_images()
train_y = mnist.train_labels()
print(train_X.shape, train_y.shape)
print('mnist test shape:')
test_X = mnist.test_images()
test_y = mnist.test_labels()
print(test_X.shape, test_y.shape)
运行 cmd
python mnist_test.py
python
D:\python> python mnist_test.py
mnist train shape:
(60000, 28, 28) (60000,)
mnist test shape:
(10000, 28, 28) (10000,)
编写一个显示手写数字图像的脚本 mnist_image1.py 如下
python
from PIL import Image
import numpy as np
import mnist
images = mnist.train_images()
img = Image.fromarray(images[0]).resize((280, 280), Image.Resampling.NEAREST)
#img.save('mnist_img1.jpg') # 可选:保存图片
img.show() # 可选:显示图片
python mnist_image1.py