“ascii”编解码器无法解码位置6中的字节0x8b:序号不在范围内(128)

2024-04-20 00:52:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用tensorflow编写cnn的代码,但是我一直遇到这个错误:

UnicodeDecodeError                        Traceback (most recent call last)
<ipython-input-20-a02172d91c0c> in <module>()
     39 # Load all the data batches.
     40 for i in range(5):
---> 41     data_batch = unpickle( 'data_batch_' + str(i + 1))
     42 
     43     train_data = np.append(train_data, data_batch[b'data'])

<ipython-input-20-a02172d91c0c> in unpickle(file)
     27     import pickle
     28     with open(file, 'rb') as fo:
---> 29         dict = pickle.load(fo)
     30         dict = dict.encode('ascii', 'ignore')
     31     return dict

UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 6: ordinal not in range(128)

我不知道该怎么办我已经试过了,但还是犯同样的错误。这是我的代码:

^{pr2}$

谢谢你!在


Tags: 代码ininputdata错误ipythonbatchrange
1条回答
网友
1楼 · 发布于 2024-04-20 00:52:25

尝试:

pickle.load(fo, encoding='latin1')

这可能是python2/3兼容性问题。顺便说一句,您应该尽量不要使用dict之类的东西作为变量名,因为它会覆盖Python的内置函数。在

相关问题 更多 >