所以我一直在使用Tensorflow的神经网络教程。我完成了本质上只是MNIST的“基本分类”,并一直在做自己的自定义变体,作为一个小小的思想实验。除了将数据集放到可用形式中之外,所有内容都是很容易解释的,因为本教程使用的是预制数据集,看起来像是在偷工减料。我只想知道如何将彩色照片放入可用的数据中。我认为那将只是一维数组。附带的问题是,如果将2d照片不是CNN存储在1d数组中,那么神经网络会失去任何有效性。
答案 0 :(得分:3)
Keras中包含的数据集是预先制作的,通常经过预处理,以便初学者可以轻松尝试一下。如要使用自己的图片,例如解决猫狗的图片分类问题,可以将图片放在两个单独的目录中,例如,
在images/cats
和images/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图像的图像。
现在
list
中收集所有图像和标签。NumPy
个数组。NumPy
方法将.npy
数组存储在np.save()
文件中。np.load()
方法加载这些文件并将其馈送到模型。