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

Pio*_*rek 4 python scikit-learn

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

from sklearn.datasets import fetch_mldata
mnist = fetch_mldata('MNIST original')
Run Code Online (Sandbox Code Playgroud)

执行它似乎有问题.

TimeoutError:[WinError 10060]连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应

当代码试图从某个地方下载某些内容并且我的互联网连接工作正常时,我认为它想要访问的服务器已关闭.

如何手动设置?

Viv*_*mar 13

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

根据源代码

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

所以在你的情况下,它会检查位置

~/scikit_learn_data/mldata/mnist-original.mat
Run Code Online (Sandbox Code Playgroud)

如果没有找到,它将从中下载

http://mldata.org/repository/data/download/matlab/mnist-original.mat
Run Code Online (Sandbox Code Playgroud)

你怀疑目前已经失败了.

所以你可以做的是从任何其他位置下载数据集,如下所示:

https://github.com/amplab/datascience-sp14/blob/master/lab7/mldata/mnist-original.mat
Run Code Online (Sandbox Code Playgroud)

并保留在上面的文件夹中.

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

更新:

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

from sklearn.datasets import get_data_home
print(get_data_home())
Run Code Online (Sandbox Code Playgroud)