python - 我需要如何配置 Keras 模型来预测图像?

标签 python machine-learning keras deep-learning image-segmentation

主要任务是预测输入图像的掩模。所以我有以下数据用于训练:

  • 很多像这样的 768x768 原始图片:

enter image description here

  • 并输出 mask 图片(也是768x768),如下所示:

enter image description here

我还有验证原始图片。

我准备了某种应该预测输出掩码的神经模型。我准备了keras model configuaration应该具有如下所示的拓扑:

enter image description here

我为训练准备的代码就在那里。

import keras
epochs=100

image_datagen = keras.preprocessing.image.ImageDataGenerator()
mask_datagen = keras.preprocessing.image.ImageDataGenerator()
seed = 1
image_generator = image_datagen.flow_from_directory(
    'H:/LABS/ship_detection/test_train/',
    color_mode='rgb',batch_size=32,target_size=(768,768),
    seed=seed)

mask_generator = mask_datagen.flow_from_directory(
    'H:/LABS/ship_detection/test_mask/',
    class_mode="categorical",batch_size=32,target_size=(768,768),
    seed=seed)

train_generator = zip(image_generator, mask_generator)

model.fit_generator(generator=train_generator,
                    epochs=epochs,
                    callbacks=callbacks,steps_per_epoch=1)

但是当我尝试使用生成器进行预测时,我遇到了一个问题:

c:\users\harwister\appdata\local\programs\python\python36\lib\site-packages\keras\engine\training_generator.py in fit_generator(model, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
    208                     batch_size = list(x.values())[0].shape[0]
    209                 else:
--> 210                     batch_size = x.shape[0]
    211                 batch_logs['batch'] = batch_index
    212                 batch_logs['size'] = batch_size

AttributeError: 'tuple' object has no attribute 'shape'

我肯定做错了什么,但我无法从这些错误中理解任何事情。我在 Google 中找不到答案的简单问题是:如何将两个图像(输入图像和输出图像)插入 Keras 中进行训练,并在训练后获得提供输入图像的输出图像?

最佳答案

由于图像和标签(即蒙版)有单独的生成器,因此需要将 class_mode 参数设置为 None 以防止生成器生成任何标签数组:

image_generator = image_datagen.flow_from_directory(class_mode=None, ...)
mask_generator = mask_datagen.flow_from_directory(class_mode=None, ...)

这样,image_generator 将仅生成输入图像,而 mask_generator 将仅生成掩模(即真实标签)图像。

关于python - 我需要如何配置 Keras 模型来预测图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53402303/

相关文章:

python - Pyspark 管道中用户定义的变压器

python - 如何用 Python 制作一个改变游戏当前区域的引擎?

python - 同时使用图像和数字输入的神经网络

python - 在没有 pandas 包的情况下在 python 中制作数据框的最简单方法?

python - 在 Python 中调整大图像的大小(大于可用 RAM)

azure - 如何配置YOLOv8 yaml文件来访问Azure上的blob存储数据集?

python - TensorFlow:如果 tf.train.batch 已经并行出队示例,并行排队示例是否会加快批量创建速度?

python-3.x - 指定的至少一个标签必须在 y_true 中,目标向量是数字

python - 在keras中创建一个混合数据生成器(images,csv)

python - 类型错误 : _reshape_dispatcher() missing 1 required positional argument: 'newshape'