【问题标题】:Trouble plotting MNIST digits无法绘制 MNIST 数字
【发布时间】:2019-05-06 11:47:09
【问题描述】:

我正在尝试加载和可视化 MNIST 数字,但我得到的数字带有偏移像素

import matplotlib.pyplot as plt
import numpy as np

mnist_data  = open('data/mnist/train-images-idx3-ubyte', 'rb')

image_size = 28
num_images = 4

buf = mnist_data.read(num_images * image_size * image_size)
data = np.frombuffer(buf, dtype=np.uint8).astype(np.float32)
data = data.reshape(num_images, image_size, image_size)

_, axarr1 = plt.subplots(2,2)
axarr1[0, 0].imshow(data[0])
axarr1[0, 1].imshow(data[1])
axarr1[1, 0].imshow(data[2])
axarr1[1, 1].imshow(data[3])

谁能告诉我为什么会这样,代码看起来不错,谢谢

【问题讨论】:

    标签: python matplotlib computer-vision mnist


    【解决方案1】:

    你没有说你从哪里获得了 MNIST 数据,但是,if it is formatted like the original data set,你似乎忘记在尝试访问数据之前提取标题:

    image_size = 28
    num_images = 4
    
    mnist_data = open('train-images-idx3-ubyte', 'rb')
    
    mnist_data.seek(16) # skip over the first 16 bytes that correspond to the header
    buf = mnist_data.read(num_images * image_size * image_size)
    data = np.frombuffer(buf, dtype=np.uint8).astype(np.float32)
    data = data.reshape(num_images, image_size, image_size)
    
    _, axarr1 = plt.subplots(2,2)
    axarr1[0, 0].imshow(data[0])
    axarr1[0, 1].imshow(data[1])
    axarr1[1, 0].imshow(data[2])
    axarr1[1, 1].imshow(data[3])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-19
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-10
      • 1970-01-01
      • 2016-10-23
      相关资源
      最近更新 更多