从sklearn数据集MNIST数据下载给超时错误

问题描述 投票:1回答:3

我是新来的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

任何人都可以请帮我需要做的事情来解决这个问题,怎么办?

python scikit-learn mnist
3个回答
2
投票

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

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

一个最简单的就是下载MNIST的.MAT文件,这个下载链接:

download MNIST.mat

下载放入〜/ scikit_learn_data / mldata文件夹中的文件后,如果这个文件夹不存在创建它,并把Mnist.mat里面。当你有本地他们scikit学不会下载并使用该文件。


3
投票

由于fetch_mldata已经过时,我们将不得不搬到fetch_openml。请务必更新以获得openml工作的scikit学习到0.20.0版本或向上。

  1. openml目前有关MNIST数据集5个不同的数据集。下面是使用MNIST-784数据集从sklearn's document一个例子。
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,学习和TensorFlow,与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:1的图象,而不是5.我想,它可能是一个在MNIST-784和MNIST原来是NIST数据的两个子集,或数据的顺序在两个数据集之间的不同。

PS:我曾经遇到过,当我试图加载数据,在我来说,我更新OpenSSL SSL一些错误和问题已经得到了解决。


0
投票

虽然我不知道你得到了错误的原因,你可以试试下面可能的方式来纠正相同。

  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

如果你面临的问题是,我想请您提供详细的追踪帮我找出问题所在。

谢谢!!

© www.soinside.com 2019 - 2024. All rights reserved.