如何生成正确的 MNIST 图像? [重复]

问题描述 投票:0回答:1

大家好,我一直在从事一个张量流项目,我想从 MNIST 数据库中获取测试图像。以下是我将原始数据(ubyte?)转换为 2d numpy 的代码要点:

from PIL import Image
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('MNIST_data', one_hot = True)
def gen_image(arr):
   two_d = np.reshape(arr, (28, 28))
   img = Image.fromarray(two_d, 'L')
   return img

batch_xs, batch_ys = mnist.test.next_batch(1)
gen_image(batch_xs[0]).show()

然而,当图像显示在这里时,它看起来一点也不像一个正常的数字,所以我想我一定是在某个地方搞砸了,但除了当 numpy 数组从 [ 重塑为 [28, 28] 时之外,无法精确定位它。 784]。有线索吗?

编辑:所以显然如果我使用 matplotlib 而不是 PIL 它工作得很好:

python tensorflow mnist
1个回答
2
投票

将数据乘以 255 并转换为 np.uint8 (uint8 表示模式“L”) 就可以了。

def gen_image(arr):
    two_d = (np.reshape(arr, (28, 28)) * 255).astype(np.uint8)
    img = Image.fromarray(two_d, 'L')
    return img

这个答案有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.