[英]Running sklearn PCA on MNIST data gives memory allocation error
[英]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 文件:
下载后将文件放入 ~/scikit_learn_data/mldata 文件夹中,如果此文件夹不存在,则创建它并将 Mnist.mat 放入其中。 当您在本地拥有它们时,scikit learn 不会下载它并使用该文件。
由于 fetch_mldata 已被弃用,我们将不得不转移到 fetch_openml。 确保将您的 scikit-learn 更新到 0.20.0 或更高版本,以便openml
工作。
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)
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 并且问题已经解决。
虽然我不确定您收到错误的原因,但您可以尝试以下可能的方法来纠正错误。
有时,数据可能会在第一次下载时损坏。 在这种情况下,您需要清除可以从 scikit 数据主目录中删除的缓存。 要获取此目录,您可以使用 -
from sklearn.datasets.base import get_data_home print (get_data_home())
现在清理目录,然后重新下载。
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.