Tôi đang cố tải tập dữ liệu MNIST được liên kết ở đây trong Python 3.2 bằng chương trình này:
import pickle
import gzip
import numpy
with gzip.open('mnist.pkl.gz', 'rb') as f:
l = list(pickle.load(f))
print(l)
Thật không may, nó cho tôi lỗi:
Traceback (most recent call last):
File "mnist.py", line 7, in <module>
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)
Sau đó, tôi đã cố gắng giải mã tập tin ngâm trong Python 2.7 và mã hóa lại nó. Vì vậy, tôi đã chạy chương trình này trong Python 2.7:
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.
Nó chạy không có lỗi, vì vậy tôi chạy lại chương trình này trong 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)
Tuy nhiên, nó đã cho tôi lỗi tương tự như trước đây. Làm thế nào để tôi có được điều này để làm việc?