我尝试从 Fashion MNIST 下载数据,但出现错误。最初,它正在下载并正常工作,但我不得不终止它,因为我必须关闭计算机。当我再次打开该文件时,它给了我一个错误。我不确定问题是什么,但是否是因为我已经下载过一次数据的某些部分,而 keras 无法识别?我在 conda 环境中使用 Jupyter 笔记本
这是图片链接:
您错过了将
tf.
添加到该行
fashion_mnist = keras.datasets.fashion_mnist
下面的代码非常适合我。
fashion_mnist
文档此处中概述了导入
tensorflow
数据集。
将代码更改为:
import tensorflow as tf
fashion_mnist = tf.keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
或者,使用下面更好的方法来做到这一点。这可以避免创建额外的变量
fashion_mnist
:
import tensorflow as tf
(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.fashion_mnist.load_data()
我在 Windows 10 x64 操作系统上使用tensorflow 1.9.0、keras 2.2.2 和 python 3.6.6。
我遇到了有关 cURL 连接的错误,通过查看错误消息,我能够跟踪声明 URL 的文件。就我而言,它是:
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorflow_core/python/keras/datasets/fashion_mnist.py
在第 44 行,我注释掉了该行:
# base = 'https://storage.googleapis.com/tensorflow/tf-keras-datasets/'
并声明了一个不同的基本 URL,这是我在查看原始数据集的文档时发现的:
base = 'http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/'
下载立即开始,没有出现任何错误。希望这有帮助。
这是因为由于某种原因,您下载的 MNIST 数据集不完整。
您必须手动删除下载的文件夹,该文件夹通常位于 ~/.keras/datasets 或您指定的相对于该路径的任何路径(在您的情况下为 MNIST_data)。
转到:C:\Users\用户名.keras\datasets
然后删除要重新下载或有错误的数据集
你应该可以走了!
您还可以手动为其获取数据集的路径添加打印.. 例如:在文件 fashion_mnist.py
中打印(路径)with gzip.open(paths[3], 'rb') as imgpath:
print(paths) #debug print in fashion_mnist.py
x_test = np.frombuffer(
imgpath.read(), np.uint8, offset=16).reshape(len(y_test), 28, 28)
&从此路径中删除文件&这将开始下载新数据..
首先你必须安装
"python-mnist",
"wget",
"tensorflow-datasets"
然后你可以这样做:
import os
import wget
import zipfile
url = 'https://github.com/zalandoresearch/fashion-mnist/archive/refs/heads/master.zip'
zip_file = 'fashion_mnist.zip'
extract_folder = 'fashion_mnist_data'
wget.download(url, zip_file)
with zipfile.ZipFile(zip_file, 'r') as zip_ref:
zip_ref.extractall(extract_folder)
os.remove(zip_file)
import sys
sys.path.append('fashion-mnist/utils')
import mnist_reader
from mnist.loader import MNIST
X_train, y_train = mnist_reader.load_mnist('fashion-mnist/data/fashion', kind='train')
X_test, y_test = mnist_reader.load_mnist('fashion-mnist/data/fashion', kind='t10k')
如前所述,将基址更改为“http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/”。这个对我有用。 我收到错误
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
Traceback (most recent call last):
File "C:\Users\AsadA\AppData\Local\Programs\Python\Python38\lib\site-packages\numpy\lib\npyio.py", line 448, in load
return pickle.load(fid, **pickle_kwargs)
EOFError: Ran out of input
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\AsadA\AppData\Local\Programs\Python\Python38\lib\site-packages\numpy\lib\npyio.py", line 450, in load
raise IOError(
OSError: Failed to interpret file 'C:\\Users\\AsadA\\.keras\\datasets\\mnist.npz' as a pickle"**
转到文件
C:\Users\AsadA\AppData\Local\Programs\Python\Python38\Lib\site-packages\tensorflow\python\keras\datasets
(就我而言)并按照说明进行操作: