ฉันพยายามที่จะโหลดชุด MNIST ที่เชื่อมโยงที่นี่ในหลาม 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 <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)
ฉันพยายามถอดรหัสไฟล์ดองใน Python 2.7 แล้วเข้ารหัสอีกครั้ง ดังนั้นฉันจึงรันโปรแกรมนี้ใน 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.
มันรันโดยไม่มีข้อผิดพลาดดังนั้นฉันจึงรันโปรแกรมนี้อีกครั้งใน 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)
อย่างไรก็ตามมันทำให้ฉันมีข้อผิดพลาดเหมือนเดิม ฉันจะทำให้เรื่องนี้ทำงานได้อย่างไร