【问题标题】:Convert MNIST data from numpy arrays to original ubyte data将 MNIST 数据从 numpy 数组转换为原始 ubyte 数据
【发布时间】:2020-12-05 11:50:43
【问题描述】:

我几乎完全使用this 代码,只是换行:

f = gzip.open("../data/mnist.pkl.gz", 'rb')
training_data, validation_data, test_data = cPickle.load(f)

到这些行:

import pickle as cPickle
f = gzip.open("mnist.pkl.gz", 'rb')
u = cPickle._Unpickler(f)
u.encoding='latin1'
training_data, validation_data, test_data = u.load()

为了解决酸洗问题。原始的 mnist.pkl.gz 是从他的 repo 下载的(可用here),或者生成 .pkl.gz 的代码是here。输出很棒,它是训练和测试数据的腌制 numpy 数组,检查时,我可以看到是否打印了训练数据的长度,它是 250,000 个 numpy 数组。

我需要将数据恢复为与原始 MNIST 数据完全相同的格式(即 ubyte、训练和测试数据以及标签分开),以放入我无法控制的外部管道中,因此它必须是和原版一样。

我真的很困惑如何做到这一点。例如,我可以看到像 this 这样的东西可能会有所帮助,但我看不出它如何适合这个问题。如果有人可以帮助我将这个腌制 numpy 数组的输出恢复为原始 MNIST 格式(即 ubyte,训练和测试数据和标签分开),我将非常感激。

编辑 1:我刚刚意识到这可能更容易,实际上我只需要将训练数据转换为 ubyte 格式,而不是测试数据,因为我已经拥有原始 ubyte 格式的测试数据。

【问题讨论】:

    标签: python numpy mnist idx


    【解决方案1】:

    一旦你有 numpy 数组中的数据,你可以将 numpy 数组转换为 mnist 格式 参考这个 https://github.com/davidflanagan/notMNIST-to-MNIST/blob/17823f4d4a3acd8317c07866702d2eb2ac79c7a0/convert_to_mnist_format.py#L92

    您可以在此处阅读更多 mnist 数据格式 http://yann.lecun.com/exdb/mnist/

    您还可以从此处验证转换后的图像 https://stackoverflow.com/a/53181925

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-26
      • 1970-01-01
      • 2017-11-09
      • 2020-06-20
      • 1970-01-01
      相关资源
      最近更新 更多