您如何“导入” MNIST的图像数据?

时间:2019-07-14 03:51:04

标签: neural-network artificial-intelligence classification image-recognition mnist

所以我一直在使用Tensorflow的神经网络教程。我完成了本质上只是MNIST的“基本分类”,并一直在做自己的自定义变体,作为一个小小的思想实验。除了将数据集放到可用形式中之外,所有内容都是很容易解释的,因为本教程使用的是预制数据集,看起来像是在偷工减料。我只想知道如何将彩色照片放入可用的数据中。我认为那将只是一维数组。附带的问题是,如果将2d照片不是CNN存储在1d数组中,那么神经网络会失去任何有效性。

1 个答案:

答案 0 :(得分:3)

Keras中包含的数据集是预先制作的,通常经过预处理,以便初学者可以轻松尝试一下。如要使用自己的图片,例如解决猫狗的图片分类问题,可以将图片放在两个单独的目录中,例如, 在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个数组。
  • 使用NumPy方法将.npy数组存储在np.save()文件中。
  • 在训练模型的文件中,使用np.load()方法加载这些文件并将其馈送到模型。