comment décompresser fichier pkl

j'ai un fichier pkl de l'ensemble de données MNIST, qui se compose d'images numériques manuscrites.

j'aimerais jeter un oeil à chacune de ces images numériques, donc j'ai besoin de déballer le fichier pkl, sauf que je ne peux pas savoir comment.

Est-il un moyen de décompresser/décompresser fichier pkl?

39
demandé sur Peque 2014-07-23 12:58:18

2 réponses

Généralement

pkl le fichier est, en fait, un sérialisé pickle fichier, ce qui signifie qu'il a été jeté en utilisant pickle module.

De l'onu-les achards de données, vous pouvez:

import pickle


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

Pour les MNIST ensemble de données

Remarque:gzip n'est nécessaire que si le fichier est compressé:

import gzip
import pickle


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

où chaque jeu peut être divisé davantage (c.-à-d. pour le jeu de formation):

train_x, train_y = train_set

Ceux qui seraient les entrées (chiffres) et les sorties (étiquettes) de vos jeux.

si vous voulez afficher les chiffres:

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

L'autre alternative serait de regarder les données d'origine:

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

mais ce sera plus difficile, car vous aurez besoin de créer un programme pour lire les données binaires dans ces fichiers. Je vous recommande donc D'utiliser Python, et de charger les données avec pickle. Comme vous l'avez vu, c'est très facile. ; -)

75
répondu Peque 2018-06-25 15:23:53

Handy one-liner

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

print __str__ pour l'objet mariné.

le problème générique de la visualisation d'un objet n'est évidemment pas défini, donc si __str__ n'est pas assez, vous aurez besoin d'un script personnalisé.

1