python - 无法手动加载 kears imbd 数据集
问题描述
按照此说明:from keras.datasets import mnist 的替代方法
我可以使用以下几行加载 mnist 数据集:
f = gzip.open('C:/.../Datasets/mnist.pkl.gz', 'rb')
if sys.version_info < (3,):
data = pickle.load(f)
else:
data = pickle.load(f, encoding='bytes')
f.close()
(x_train, y_train),(x_test, y_test) = data
但是,当我对 IMDB 数据集尝试相同的操作时,我将其保存为 tar.gz 文件,其中包含以下命令:
imdb = gzip.open('C:/.../Datasets/aclImdb_v1.tar.gz', 'rb')
if sys.version_info < (3,):
data = pickle.load(imdb)
else:
data = pickle.load(imdb, encoding='bytes')
imdb.close()
我得到错误:
UnpicklingError: unpickling stack underflow
我不允许加载它:
imdb = keras.datasets.imdb
(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)
因为我在代理后面。
解决方案
由于您在代理后面,因此有其他方法可以下载数据集:
- 在https://s3.amazonaws.com/text-datasets/imdb.npz下载文件
- 把下载的文件放到里面
C:\Users\<your_username>\.keras\datasets
- 正常使用
keras.datasets.imdb.load_data()
。
如果您收到有关 pickle 的错误,请查看:How to fix 'Object arrays cannot be loaded when allow_pickle=False' for imdb.load_data() function?
推荐阅读
- vue.js - 如何通过计时器从 v-for 中删除?
- c# - 在线托管 json 文件的问题并按 c# HttpClient 发布它们
- javascript - 控制器和服务之间没有传递参数
- ruby-on-rails - 将遗留 lib 文件夹移动到更现代的结构中
- r - 如何修复错误:使用 R 的 rename() 函数中出现意外的“=”?
- javascript - 使用正则表达式捕获字符串的第二部分
- sql - 在 nodeJs 上,MariaDB 可以返回连接表的对象数组吗?
- java - 验证数独扇区中的数字
- android - Visual Studio Code (flutter) 不显示完整的错误堆栈跟踪
- linux - 从 vue 配置更改解析路径