获取MNIST数据的几种方法

获取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()

你可能感兴趣的:(获取MNIST数据的几种方法)