繁体   English   中英

从 sklearn 数据集下载 MNIST 数据会出现超时错误

[英]MNIST data download from sklearn datasets gives Timeout error

我是 ML 的新手,正在尝试下载 MNIST 数据。 我正在使用的代码是:

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

但是,它给出了一个错误说:

TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

任何人都可以帮我解决这个问题需要做些什么吗?

这是问题和一些好人建议的解决方法:

https://github.com/scikit-learn/scikit-learn/issues/8588

最简单的方法是使用以下下载链接下载 MNIST 的 .mat 文件:

下载 MNIST.mat

下载后将文件放入 ~/scikit_learn_data/mldata 文件夹中,如果此文件夹不存在,则创建它并将 Mnist.mat 放入其中。 当您在本地拥有它们时,scikit learn 不会下载它并使用该文件。

由于 fetch_mldata 已被弃用,我们将不得不转移到 fetch_openml。 确保将您的 scikit-learn 更新到 0.20.0 或更高版本,以便openml工作。

  1. openml目前有 5 个与 MNIST 数据集相关的不同数据集。 这是sklearn 文档中使用 mnist-784 数据集的一个示例。
from sklearn.datasets import fetch_openml
# Load data from https://www.openml.org/d/554
X, y = fetch_openml('mnist_784', version=1, return_X_y=True)
  1. 或者,如果您不需要非常大的数据集,则可以使用load_digits
from sklearn.datasets  import load_digits
mnist = load_digits()

请注意,如果您正在阅读使用 Scikit-Learn 和 TensorFlow 的 Hands-On Machine Learning一书,使用mnist-784数据集,您可能会注意到代码

some_digit = X[36000]
some_digit_image = some_digit.reshape(28, 28)
plt.imshow(some_digit_image, cmap=matplotlib.cm.binary, interpolation="nearest")
plt.axis('off')
plt.show()

返回 9 而不是 5 的图片。我猜,可能是 mnist-784 和 mnist 原始是 nist 数据的两个子集,或者两个数据集之间的数据顺序不同。

PS:我在尝试加载数据时遇到了一些关于 ssl 的错误,在我的情况下,我更新了 openssl 并且问题已经解决。

虽然我不确定您收到错误的原因,但您可以尝试以下可能的方法来纠正错误。

  1. 有时,数据可能会在第一次下载时损坏。 在这种情况下,您需要清除可以从 scikit 数据主目录中删除的缓存 要获取此目录,您可以使用 -

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

现在清理目录,然后重新下载。

  1. 如果问题仍然存在,您可以参考以下链接进行一些试错以检查您的问题。

https://github.com/ageron/handson-ml/issues/143

https://github.com/scikit-learn/scikit-learn/issues/8588

https://github.com/ageron/handson-ml/issues/8

如果您仍然遇到问题,我想请求您提供详细的回溯以帮助我确定问题。

谢谢!!

如果您的 sklearn 版本低于 .19,则“fetch_mldata”将不起作用。 您需要将 sklearn 升级到 .23 版本

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM