如何解决使用 keras 加载 mnist 时尚数据集
我复制粘贴了tensorflow的官方基本分类:分类图片的服装代码https://www.tensorflow.org/tutorials/keras/classification
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
fashion_mnist = tf.keras.datasets.fashion_mnist
(train_images,train_labels),(test_images,test_labels) = fashion_mnist.load_data()
并运行它。运行时它打印了一堆乱码并且不会停止(几乎就像你不小心将打印放入 while 循环一样):
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz
8192/26421880 [..............................] - ETA: 6s
98304/26421880 [..............................] - ETA: 14s
106496/26421880 [..............................] - ETA: 27s
417792/26421880 [..............................] - ETA: 10s
425984/26421880 [..............................] - ETA: 13s
所以我终止了它。以上只是打印内容的一小部分。我再次运行它,但立即出现错误。
line 7,in <module>
(train_images,test_labels) = fashion_mnist.load_data()
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\python\keras\datasets\fashion_mnist.py",line 82,in load_data
imgpath.read(),np.uint8,offset=16).reshape(len(y_train),28,28)
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\gzip.py",line 292,in read
return self._buffer.read(size)
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\gzip.py",line 498,in read
raise EOFError("Compressed file ended before the end-of-stream marker was reached")
我检查了一个类似的问题,删除了导致此错误的数据集并再次运行。我等待它打印出来的乱码并等待它完成运行,只是因为它在大约 30 分钟后过早终止并出现此错误:
Traceback (most recent call last):
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\python\keras\utils\data_utils.py",line 275,in get_file
urlretrieve(origin,fpath,dl_progress)
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\urllib\request.py",line 286,in urlretrieve
raise ContentTooShortError(
urllib.error.ContentTooShortError: <urlopen error retrieval incomplete: got only 9191424 out of 26421880 bytes>
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "C:\Users\david\Documents\DAVID\Documents\Education\Computer Science\Extra stuff\Machine learning\Neural networks\ep.2.py",line 7,line 75,in load_data
paths.append(get_file(fname,origin=base + fname,cache_subdir=dirname))
File "C:\Users\david\AppData\Local\Programs\Python\Python38\lib\site-packages\tensorflow\python\keras\utils\data_utils.py",line 279,in get_file
raise Exception(error_msg.format(origin,e.errno,e.reason))
Exception: URL fetch failure on https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz: None -- retrieval incomplete: got only 9191424 out of 26421880 bytes
我多次尝试删除该数据集,每次运行代码时,同样的事情一次又一次地发生。
我找不到任何关于发生这种情况时该怎么做的论坛或堆栈溢出,任何帮助将不胜感激。
TL;DR 当复制和粘贴 tensorflow 的教程代码导致错误时,我该怎么做才能加载 MNIST 数据集?
解决方法
查看 %USERPROFILE%\.keras\datasets
文件夹并删除 mnist 相关文件和文件夹
对此有更多了解的人可能对此有实际的答案或原因,但对我而言,在与 Ismail 长时间讨论后,我们得出的结论是我的电脑或 python 设置有问题,或者其他什么问题,对我来说,解决方案只是使用 google 的 colab 或任何其他 python shell,但 IDLE。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。