【问题标题】:Unable to load CIFAR-10 dataset: Invalid load key '\x1f'无法加载 CIFAR-10 数据集:加载键“\x1f”无效
【发布时间】:2017-12-20 15:39:03
【问题描述】:

我目前正在使用 TensorFlow 中的一些神经网络 - 我决定尝试使用 CIFAR-10 数据集。我从网站下载了“CIFAR-10 python”数据集:https://www.cs.toronto.edu/~kriz/cifar.html

在 Python 中,我也尝试直接复制提供的用于加载数据的代码:

def unpickle(file):
import pickle
with open(file, 'rb') as fo:
    dict = pickle.load(fo, encoding='bytes')
return dict

但是,当我运行它时,我最终得到以下错误:_pickle.UnpicklingError: invalid load key, '\x1f'. 我也尝试使用 gzip 模块 (with gzip.open(file, 'rb') as fo:) 打开文件,但这也不起作用。

是数据集很糟糕,还是代码有问题?如果数据集不好,我在哪里可以获得适合 CIFAR-10 的数据集?

【问题讨论】:

  • 尝试删除encoding='bytes'?
  • 我试过了,同样的错误仍然存​​在。
  • 好的...你有 keras 吗?
  • 我通过pip安装了tensorflow,所以pip install tensorflow。不确定这是否也会安装 keras,但我假设不会。
  • 我不知道这是否已经解决,但我下载了 python 数据集,pickle 可以使用该数据集。我相信 tensorflow 示例中使用的数据集是二进制数据集,不能解压。

标签: python python-3.x dataset


【解决方案1】:

提取您的 *.gz 文件并使用此代码

from six.moves import cPickle
f = open("path/data_batch_1", 'rb')
datadict = cPickle.load(f,encoding='latin1')
f.close()
X = datadict["data"]
Y = datadict['labels']

【讨论】:

    【解决方案2】:

    您似乎需要先解压缩 *gz 文件,然后再解压缩 *tar 文件才能获得 data_batches 的文件夹。之后,您可以对这些批次应用 pickle.load()。

    【讨论】:

      【解决方案3】:

      只要解压你的 tar.gz 文件,你会得到一个文件夹 data_batch_1, data_batch_2, ...

      使用后,提供的代码将数据加载到您的项目中:

      def unpickle(file):
          import pickle
          with open(file, 'rb') as fo:
              dict = pickle.load(fo, encoding='bytes')
          return dict
      

      dict = unpickle('data_batch_1')

      【讨论】:

        【解决方案4】:

        我在使用 jupyter(vscode) 和 python3.8/3.7 时遇到了同样的问题。我试图编辑源 cifar.py cifar10.py 但没有成功。
        我的解决方案是在单独的普通 .py 文件中运行这两行代码:

        from tensorflow.keras.datasets import cifar10
        cifar10.load_data()
        

        之后它在 Jupyter 上运行良好。

        【讨论】:

          猜你喜欢
          • 2022-12-04
          • 1970-01-01
          • 2017-12-19
          • 1970-01-01
          • 2019-08-23
          • 2015-06-08
          • 2020-12-23
          • 2021-06-20
          • 1970-01-01
          相关资源
          最近更新 更多