获取MNIST数据的几种方法
MNIST是一个非常常见的数据集,数据量小,方便读入内存,而且直观可见,在实现各种机器学习算法的时候,经常可以用来当小白鼠实验。这里介绍几种获取MNIST的方法,包括直接从某个链接下载数据集的方案,也有利用python库间接下载的方案。
方法1. 官网下载
MNIST数据集的版权在Yann LeCun教授手上,在他的主页下载即可。
http://yann.lecun.com/exdb/mnist/
下载4个gz文件,实际上这也是旧版TensorFlow中获取mnist的方法。
注意,图像数据取值为0到1之间。
方法2. 谷歌下载
https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
下载1个npz文件,实际上这也是新版TensorFlow中获取mnist的方法。
注意,图像数据取值为0到255之间。
方法3. 通过TensorFlow获取
旧版(1.7以前?)
如果不FQ的话,可能无法通过这种方法下载mnist数据集,可以利用方法1先下载好数据集,放到mnist
文件夹下,然后指定datapath
来读取。
from tensorflow.examples.tutorials.mnist import input_data
datapath = "./mnist/"
mnist = input_data.read_data_sets(datapath, one_hot=True)
train_x = mnist.train.images
train_y = mnist.train.labels
test_x = mnist.test.images
test_y = mnist.text.labels
新版(1.7以后?)
这个方法会自动从方法2的链接下载mnist.npz
并存放于~/.keras/datasets/
下,因此提前下载好放在这里就可以避免无法下载的问题。
import tensorflow as tf
(train_x, train_y), (test_x, test_y) = tf.keras.datasets.mnist.load_data(path='mnist.npz')
方法4. 通过Keras获取
from keras.datasets import mnist
(train_x, train_y), (test_x, test_y) = mnist.load_data()