как распаковать файл pkl

У меня есть файл pkl из набора данных MNIST, который состоит из рукописных цифровых изображений.

Я хотел бы взглянуть на каждое из этих цифровых изображений, поэтому мне нужно распаковать файл pkl, за исключением того, что я не могу узнать, как.

есть ли способ распаковать / распаковать файл pkl?

2 ответов


вообще

код pkl файл на самом деле является сериализованным pickle файл, что означает, что он был сброшен с помощью Python pickle модуль.

ООН-рассольник данные можно:

import pickle


with open('serialized.pkl', 'rb') as f:
    data = pickle.load(f)

для набора данных MNIST

Примечание gzip требуется только в том случае, если файл сжат:

import gzip
import pickle


with gzip.open('mnist.pkl.gz', 'rb') as f:
    train_set, valid_set, test_set = pickle.load(f)

где каждый набор может быть разделен (т. е. для тренировочного набора):

train_x, train_y = train_set

это будет входы (цифры) и выходы (метки) ваших наборов.

если вы хотите отобразить цифры:

import matplotlib.cm as cm
import matplotlib.pyplot as plt


plt.imshow(train_x[0].reshape((28, 28)), cmap=cm.Greys_r)
plt.show()

mnist_digit

другой альтернативой было бы посмотреть на исходные данные:

http://yann.lecun.com/exdb/mnist/

но это будет сложнее, так как вам нужно будет создать программу для чтения двоичных данных в этих файлах. Поэтому я рекомендую вам использовать Python и загружать данные с помощью pickle. Как вы видишь, это очень просто. ;-)


удобный однострочный

pkl() (
  python -c 'import pickle,sys;d=pickle.load(open(sys.argv[1],"rb"));print(d)' ""
)
pkl my.pkl

печати __str__ для маринованного объекта.

общая проблема визуализации объекта, конечно, не определена, поэтому, если __str__ недостаточно, вам понадобится пользовательский скрипт.