numpy python 兼容_Python 2和3之间的numpy数组的不兼容性
我試圖加載MNIST數(shù)據(jù)集鏈接
here在Python 3.2使用此程序:
import pickle
import gzip
import numpy
with gzip.open('mnist.pkl.gz', 'rb') as f:
l = list(pickle.load(f))
print(l)
不幸的是,它給我的錯誤:
Traceback (most recent call last):
File "mnist.py", line 7, in
train_set, valid_set, test_set = pickle.load(f)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 614: ordinal not in range(128)
然后我試圖解碼Python 2.7中的pickled文件,并重新編碼。所以,我在Python 2.7中運(yùn)行這個程序:
import pickle
import gzip
import numpy
with gzip.open('mnist.pkl.gz', 'rb') as f:
train_set, valid_set, test_set = pickle.load(f)
# Printing out the three objects reveals that they are
# all pairs containing numpy arrays.
with gzip.open('mnistx.pkl.gz', 'wb') as g:
pickle.dump(
(train_set, valid_set, test_set),
g,
protocol=2) # I also tried protocol 0.
它運(yùn)行沒有錯誤,所以我重新編譯這個程序在Python 3.2:
import pickle
import gzip
import numpy
# note the filename change
with gzip.open('mnistx.pkl.gz', 'rb') as f:
l = list(pickle.load(f))
print(l)
但是,它給了我一樣的錯誤,以前。如何讓這個工作?
總結(jié)
以上是生活随笔為你收集整理的numpy python 兼容_Python 2和3之间的numpy数组的不兼容性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux删除权限命令,管理使用者和设立
- 下一篇: python优化网站_[练习] 用PYT