fetch_mldata:当源服务器关闭时,如何手动设置MNIST数据集?

时间:2018-07-12 09:11:01

标签: python scikit-learn

我需要运行包含以下行的代码:

from sklearn.datasets import fetch_mldata
mnist = fetch_mldata('MNIST original')

执行它似乎有问题。

  

TimeoutError:[WinError 10060]连接尝试失败,因为一段时间后连接方未正确响应,或者由于连接的主机未能响应而建立的连接失败

当代码尝试从某处下载某物且我的Internet连接运行良好时,我认为它要访问的服务器已关闭。

如何手动设置?

1 个答案:

答案 0 :(得分:8)

fetch_mldata默认情况下将检查'〜/ scikit_learn_data / mldata'中的数据,以查看数据集是否已下载。

根据source code

    # if the file does not exist, download it
    if not exists(filename):
        urlname = MLDATA_BASE_URL % quote(dataname)

因此,在您的情况下,它将检查位置

~/scikit_learn_data/mldata/mnist-original.mat

,如果找不到,它将从

下载
http://mldata.org/repository/data/download/matlab/mnist-original.mat

当前怀疑已关闭。

因此,您可以从其他任何位置下载数据集:

https://github.com/amplab/datascience-sp14/blob/master/lab7/mldata/mnist-original.mat

,并将其保存在上述文件夹中。

之后,当您运行fetch_mldata()时,应该选择下载的数据集而不连接mldata.org。

更新:

这里~是指用户主文件夹。您可以使用以下代码来根据系统了解该文件夹的默认位置。

from sklearn.datasets import get_data_home
print(get_data_home())