cómo desempaquetar un archivo pkl
Tengo un archivo pkl del conjunto de datos MNIST, que consiste en imágenes de dígitos escritas a mano.
Me gustaría echar un vistazo a cada una de esas imágenes de dígitos, así que necesito desempaquetar el archivo pkl, excepto que no puedo averiguar cómo.
¿Hay alguna forma de descomprimir/descomprimir el archivo pkl?
2 answers
En general
Su archivo pkl
es, de hecho, un archivo serializado pickle
, lo que significa que ha sido volcado usando el archivo de Python pickle
módulo.
Para des-pickle los datos puede:
import pickle
with open('serialized.pkl', 'rb') as f:
data = pickle.load(f)
Para el conjunto de datos del MNIST
Nota gzip
solo es necesario si el archivo está comprimido:
import gzip
import pickle
with gzip.open('mnist.pkl.gz', 'rb') as f:
train_set, valid_set, test_set = pickle.load(f)
Donde cada conjunto se puede dividir más (es decir, para el conjunto de entrenamiento):
train_x, train_y = train_set
Esas serían las entradas (dígitos) y salidas (etiquetas) de su sets.
Si desea mostrar los dígitos:
import matplotlib.cm as cm
import matplotlib.pyplot as plt
plt.imshow(train_x[0].reshape((28, 28)), cmap=cm.Greys_r)
plt.show()
La otra alternativa sería mirar los datos originales:
Http://yann.lecun.com/exdb/mnist /
Pero eso será más difícil, ya que necesitará crear un programa para leer los datos binarios en esos archivos. Así que te recomiendo usar Python, y cargar los datos con pickle
. Como has visto, es muy fácil. ;-)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-25 15:23:53
Práctico one-liner
pkl() (
python -c 'import pickle,sys;d=pickle.load(open(sys.argv[1],"rb"));print(d)' "$1"
)
pkl my.pkl
Imprimirá __str__
para el objeto en escabeche.
El problema genérico de visualizar un objeto es, por supuesto, indefinido, por lo que si __str__
no es suficiente, necesitará un script personalizado.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-08 11:01:37