Keras用于语义分段,flow_from_directory()错误

时间:2017-08-04 15:20:27

标签: runtime-error keras-2

我试图在Keras文档中使用我对示例代码的修改,该文档显示了在使用图像蒙版代替标签的情况下如何设置image_datagen.flow_from_directory()(用于图像分割,我们在哪里预测每个像素的类)。

顺便说一句,我设置了featurewise_center = True,试图从每个图像的颜色通道中减去所有训练图像的每个颜色通道的平均值,这样在整个训练集中,每个颜色通道意味着将是0.我希望这不是实现这一目标的方法。

无论如何,我的代码产生了错误:

image_datagen = ImageDataGenerator(featurewise_center = True)
mask_datagen = ImageDataGenerator()

image_generator = image_datagen.flow_from_directory(
    '/home/icg/Martin/train_data_graz/images_rect_r640x360',
    class_mode = None,
    batch_size = 1,
    seed = 123)

mask_generator = mask_datagen.flow_from_directory(
    '/home/icg/Martin/train_data_graz/labels_rect_r640x360',
    class_mode = None,
    batch_size = 1,
    seed = 123)

# combine generators into one which yields image and masks
train_generator = zip(image_generator, mask_generator)

model.fit_generator(
    train_generator,
    steps_per_epoch = 1000,
    epochs = 100)

以下是错误消息:

Found 0 images belonging to 0 classes.
Found 0 images belonging to 0 classes.
Traceback (most recent call last):
  File "FCN_VGG16.py", line 178, in <module>
    train_generator = zip(image_generator, mask_generator)
  File "/home/icg/rafa/local/lib/python2.7/site-packages/keras/preprocessing/image.py", line 1026, in next
    index_array, current_index, current_batch_size = next(self.index_generator)
  File "/home/icg/rafa/local/lib/python2.7/site-packages/keras/preprocessing/image.py", line 720, in _flow_index
    current_index = (self.batch_index * batch_size) % n
ZeroDivisionError: integer division or modulo by zero

由于某种原因,n = 0.任何想法可能会发生这种情况?

1 个答案:

答案 0 :(得分:3)

您需要将每个类的图像放入子文件夹flow_from_directory()函数的目录中。

在你的情况下:

/home/icg/Martin/train_data_graz/images_rect_r640x360/images_class01
/home/icg/Martin/train_data_graz/images_rect_r640x360/images_class02
…

修改

由于您已将class_mode设置为None并进行语义细分(请参阅评论和帖子):

/home/icg/Martin/train_data_graz/images_rect_r640x360/all_images