a special version for python içeren CIFAR-10 dataset ile çalışıyorum çalışıyorum.Python3 turle ile python2 cPikle tarafından seri hale getirilmiş veriler nasıl okunur?
Her biri 10k numpy matrislerinin bir sözlüğünü temsil eden bir ikili dosyalar dizisidir. Dosyalar açık bir şekilde python2 cPickle
tarafından yaratılmıştır. Bu gerçekten harika işler
import cPickle
with open("data/data_batch_1", "rb") as f:
data = cPickle.load(f)
:
ben şöyle python2 onu yüklemeye çalıştı. Ben python3 veri yüklemek için çalışırsanız, ancak (yerine değilcPickle
ama
pickle
vardır), başarısız:
import pickle
with open("data/data_batch_1", "rb") as f:
data = pickle.load(f)
aşağıdaki hata ile başarısız olursa:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 6: ordinal not in range(128)
ben bir şekilde dönüşümü Can python3'ten okunabilecek yeni bir veri kümesine 3? Ya da bir şekilde python3'ten okuyabilir miyim?
Ben cPickle
tarafından yüklemeden json
içine damping ve pickle
tarafından geri okuma denedim ama numpy matrisler belli ki json dosyası olarak yazılamaz.
:
olurdu
bytes
nesneler olarak dizeleri yüklemek için bu düzeltmeyi uygularsanız, daha sonra bir ileti 'almak TypeError : Unicode karakteri, bayt değil, numpy sürümünüz çok eski ve [this] (https://github.com/numpy/numpy/issues/4879) hataya sahip olmalıdır. –belki de latin1 ve byte değil –
@ShimonDoodkin'i kullanmak daha iyidir: bu tamamen verilere bağlı olacaktır. Ve sadece Latin-1'in her zaman işe yaradığı için aslında Latince-1 verisi olduğu anlamına gelmez. –