网址:https://s3.amazonaws.com/img-datasets/mnist.npz,由于显而易见的原因,无法访问。
npz实际上是numpy提供的数组存储方式,简单的可看做是一系列npy数据的组合,利用np.load函数读取后得到一个类似字典的对象,可以通过关键字进行值查询,关键字对应的值其实就是一个npy数据。
如果用keras自带的example(from keras.datasets import mnist,在mnist.py下的load_data函数),会使用这种格式。

 

我自己解决方法是在国外的vps机器上下载,然后传到本地,假设保存为mnist.npz,则加载方法:

import numpy as np
def load_data(path='mnist.npz'):
    """Loads the MNIST dataset.
    # Arguments
        path: path where to cache the dataset locally
            (relative to ~/.keras/datasets).
    # Returns
        Tuple of Numpy arrays: `(x_train, y_train), (x_test, y_test)`.
    path = get_file(path,
                    origin='https://s3.amazonaws.com/img-datasets/mnist.npz',
                    file_hash='8a61469f7ea1b51cbae51d4f78837e45')
    """
    f = np.load(path)
    x_train, y_train = f['x_train'], f['y_train']
    x_test, y_test = f['x_test'], f['y_test']
    f.close()
    return (x_train, y_train), (x_test, y_test)

# the data, split between train and test sets
(x_train, y_train), (x_test, y_test) = load_data()

 

原来的是:

(x_train, y_train), (x_test, y_test) = mnist.load_data()

 替换下OK!