擅长:python、mysql、java
<p>从我们在评论中的讨论来看,你的下载很糟糕。我从上面提供的链接下载了CIFAR-100数据库,使用了您提供并成功加载到数据中的<code>unpickle</code>的第二个版本。注意,<code>'encoding'</code>参数只对Python 3有效,所以我使用了您为Python 2提供的第二个版本。</p>
<p>具体来说,使用从存档中提取并放在当前目录中的<code>train</code>pickle文件,这里是我的REPL历史记录:</p>
<pre><code>In [14]: import cPickle as pickle
In [15]: def unpickle(file):
...: with open(file, 'rb') as fo:
...: dict = pickle.load(fo)
...: return dict
...:
In [16]: data = unpickle('train')
In [17]: len(data)
Out[17]: 5
In [18]: data.keys()
Out[18]: ['data', 'batch_label', 'fine_labels', 'coarse_labels', 'filenames']
In [19]: data['data'].shape
Out[19]: (50000L, 3072L)
</code></pre>
<p>如你所见,我有一本有五把钥匙的字典。字典中用<code>'data'</code>键存储的值包含我们的32 x 32彩色像素数据,其中每行是图像的展开版本(32 x 32 x 3彩色通道=3072像素)。我们预计还有50000张照片。因此,请再次尝试下载数据并使用<code>unpickle</code>函数(您提供的第二个函数)。它应该像对我一样工作。</p>