你如何 "import" MNIST 的图像数据?

How do you "import" image data for MNIST?

所以我一直在使用 Tensorflow 的神经网络教程。我完成了本质上只是 MNIST 的 "basic classification",并且一直在努力制作我自己的自定义变体作为一个小思想实验。除了将数据集放入可用的形式之外,一切都是不言自明的,因为本教程使用预制数据集并且看起来像是偷工减料。我只想知道如何将彩色照片放入可用数据中。我假设那只是一个一维数组。作为附带问题,如果二维照片不是 CNN,如果将二维照片存储在一维数组中,神经网络是否会失去任何有效性。

Keras 中包含的数据集是预制的并且通常经过预处理,以便初学者可以轻松地尝试使用它们。要使用您自己的图像,例如 cat-dog 图像分类问题,您可以将图像放在两个单独的目录中,例如, 在 images/catsimages/dogs 中。 现在,我们解析这些目录中的每个图像,

import os
from PIL import Image

master_dir = 'images'
img_dirs = os.listdir( master_dir ) 
for img_dir in img_dirs:
    img_names = os.listdir( os.path.join( master_dir , img_dir ) ) 
    for name in img_names:
        img_path = os.path.join( master_dir , img_dir , name ) 
        image = Image.open( img_path ).resize( ( 64 , 64 ) ).convert( 'L' ) 
        # Store this image in an array with its corresponding label

这里。 image 将是一个形状为 (64, 64 ) 的数组,表示图像是灰度图像。除了代码中的 .convert( 'L' ) 之外,我们还可以使用 .convert( 'RGB' ) 来获得形状为 (64,64,3) 的 RGB 图像。

现在,

  • 收集 Python list 中的所有图像和标签。
  • 将列表转换为 NumPy 数组。
  • 使用 np.save() 方法将 NumPy 数组存储在 .npy 文件中。
  • 在训练模型的文件中,使用np.load()方法加载这些文件并将它们提供给模型。