离线使用(fashion-)mnist数据集的方法(解决报错提示:EOFError: Compressed file ended before the end-of-stream marker wa

参考博客:https://www.cnblogs.com/qiutenglong/archive/2019/07/07/11146357.html
博客中有一点没有提出来,这里补充一下:注意要新建一个不叫“datasets”的文件夹,那么就不会报错了

tensorflow可以下载mnist(或fashion-mnist数据集)通过代码:

import tensorflow as tf
from tensorflow import keras
fashion_mnist = keras.datasets.fashion_mnist
(train_images,train_labels),(test_images,test_labels) = fashion_mnist.load_data()

可以从线上下载fashion_mnist数据集,然后这个代码运行一遍之后,再运行一次会报错:EOFError: Compressed file ended before the end-of-stream marker was reached,因为不能重复下载。
一般思路是有了文件直接读啊…报什么错= =
想阻止这个报错,思路是离线使用这个数据集,测试了fashion-mnist,mnist应该也是同理

从报错提示可以看到他会运行一个py文件,fashion-mnist.py,它能让tensorflow线上下载fashion-mnist数据集,它在:/home/wolfy/.local/lib/python3.5/site-packages/tensorflow/python/keras/_impl/keras/datasets里面
注意如果没有找到.local,那么就是被隐藏了,ubuntu里面用ctr+h显示隐藏文件
打开这个文件,可以看到下面代码:
在这里插入图片描述
里面的代码dirname = os.path.join(‘datasets’, ‘fashion-mnist’)默认下载到了/home/wolfy/.keras/datasets里面

这里发现如果把代码修改为dirname = os.path.join(‘new_datasets/fashion-mnist’)
就不会报错(只要不叫datasets都行吧),达到“没有数据集就下载,有了数据集重新运行代码后不会报错,而是直接用这个数据集”的效果
这样就可以离线使用了

猜你喜欢

转载自blog.csdn.net/Only_Wolfy/article/details/97935867