keras中无法下载 https://s3.amazonaws.com/img-datasets/mnist.npz 解决方法

时间:2024-02-25 12:38:41

网址: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!