如何解压缩pkl文件?

ytr*_*ewq 64 python pickle mnist deep-learning

我有一个来自MNIST数据集的pkl文件,它由手写的数字图像组成.

我想看看每个数字图像,所以我需要解压缩pkl文件,除了我不知道如何.

有没有办法解压缩/解压缩pkl文件?

Peq*_*que 120

通常

pkl实际上,您的文件是一个序列化pickle文件,这意味着它已使用Python的pickle模块转储.

要取消数据,您可以:

import pickle


with open('serialized.pkl', 'rb') as f:
    data = pickle.load(f)
Run Code Online (Sandbox Code Playgroud)

对于MNIST数据集

gzip仅在压缩文件时才需要注意:

import gzip
import pickle


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

每组可以进一步划分(即训练集):

train_x, train_y = train_set
Run Code Online (Sandbox Code Playgroud)

这些将是您的集合的输入(数字)和输出(标签).

如果要显示数字:

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


plt.imshow(train_x[0].reshape((28, 28)), cmap=cm.Greys_r)
plt.show()
Run Code Online (Sandbox Code Playgroud)

mnist_digit

另一种选择是查看原始数据:

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

但这将更难,因为您需要创建一个程序来读取这些文件中的二进制数据.所以我建议你使用Python,然后加载数据pickle.如你所见,这很容易.;-)


Cir*_*四事件 8

方便的单线

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

将打印__str__腌制对象。

可视化对象的一般问题当然是未定义的,因此如果__str__还不够,您将需要一个自定义脚本。