私は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をその中に配置します。それらをローカルに持っている場合、scikitlearnはそれをダウンロードせずにそのファイルを使用します。
Fetch_mldataは非推奨になっているため、fetch_openmlに移動する必要があります。 openml
を機能させるには、scikit-learnをバージョン0.20.0以降に更新してください。
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を使用したハンズオン機械学習、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()
5ではなく9の画像を返します。おそらく、mnist-784とmnist originalがnistデータの2つのサブセットであるか、2つのデータセット間でデータの順序が異なる可能性があります。
PS:データを読み込もうとしたときに、sslに関するエラーが発生しました。私の場合、opensslを更新すると、問題は解決しました。
エラーが発生する理由はわかりませんが、以下の方法でエラーを修正できます。
場合によっては、最初のダウンロード時にデータが破損する可能性があります。その場合、scikitデータのホームディレクトリから削除できるキャッシュをクリアする必要があります。このディレクトリを取得するには、次を使用できます-
from sklearn.datasets.base import get_data_home
print (get_data_home())
次に、ディレクトリをクリーンアップして、再ダウンロードします。
https://github.com/ageron/handson-ml/issues/14
https://github.com/scikit-learn/scikit-learn/issues/8588
https://github.com/ageron/handson-ml/issues/8
それでも問題が発生する場合は、問題の特定に役立つ詳細なトレースバックを提供するようにお願いします。
ありがとう!