Deep learning 如何使用Keras ImageDataGenerator进行图像转换输入

Deep learning 如何使用Keras ImageDataGenerator进行图像转换输入,deep-learning,keras,Deep Learning,Keras,我试图训练一个模型,将一幅图像转换成另一幅图像(因此,这不是一个图像分类问题)。它是自动着色,即将灰度图像转换为彩色 我已经建立了顺序DL模型 我想提供(image_x,image_y)和非(image_x,label)作为model.fit()方法的输入 我如何使用ImageDataGenerator来实现这一点 如果ImageDataGenerator不是合适的方法,您能让我参考合适的Keras方法来完成这项工作吗 我有目录中的图像 train/grayscale/ train/color

我试图训练一个模型,将一幅图像转换成另一幅图像(因此,这不是一个图像分类问题)。它是自动着色,即将灰度图像转换为彩色

我已经建立了顺序DL模型

我想提供(image_x,image_y)和非(image_x,label)作为model.fit()方法的输入

我如何使用ImageDataGenerator来实现这一点

如果ImageDataGenerator不是合适的方法,您能让我参考合适的Keras方法来完成这项工作吗

我有目录中的图像

  • train/grayscale/
  • train/color/
  • validation/grayscale
  • validation/color
  • test/grayscale
  • test/color

提前感谢。

您的问题就像一个图像分割任务。中有一个将图像和遮罩(在您的示例中为彩色图像)与ImageDataGenerator一起转换的示例

以下是一个例子:

#我们创建两个具有相同参数的实例
数据根参数=dict(特征中心=True,
featurewise_std_normalization=True,
旋转范围=90。,
宽度\偏移\范围=0.1,
高度位移范围=0.1,
缩放(范围=0.2)
image\u datagen=ImageDataGenerator(**data\u gen\u args)
mask_datagen=ImageDataGenerator(**数据_gen_args)
#为fit和flow方法提供相同的种子和关键字参数
种子=1
image_datagen.fit(图像,augment=True,seed=seed)
mask_datagen.fit(mask,augment=True,seed=seed)
image\u generator=来自\u目录的image\u datagen.flow\u(
“数据/图像”,
class_模式=无,
种子=种子)
mask\u generator=来自\u目录的mask\u datagen.flow\u(
“数据/掩码”,
class_模式=无,
种子=种子)
#将生成器组合成一个生成图像和遮罩的生成器
序列生成器=zip(图像生成器、掩码生成器)
1.2型拟合发生器(
列车发电机,
每个历元的步数=2000,
时代=50)
请注意,在class_mode=None的情况下,数据仍然需要 驻留在目录的子目录中,以使其正常工作

例如,当您将
train/grayscale
train/color
传递给两个
flow\u from\u directory
函数时,列车图像的目录应如下所示:

  • train/grayscale/images

  • train/color/images


对不起,我不明白。我已经看过文件了。我所能看到的是,如果我将图像放在data/folder1和data/folder2中,ImageDataGenerator将生成带有标签folder1和folder2的批处理。我不知道如何告诉它抓取(x_train,y_train),其中y_train是一个图像而不是一个标签。我编辑了我的答案,添加了示例和一些注释。“我希望这对你有帮助。@Matin-我只是不明白一些事情。”。在image_dagen.fit()中,您必须提供一个变量images。。。这些是什么?因为在image_generator中,您已经指定了图像…@Dieter-如果您想在ImageDataGenerator中使用例如featurewise归一化,首先需要计算一组数据的平均值和标准值。通常,这些数据是整个训练数据,但您也可以使用其他数据。