-1

我正在研究用于图像分类问题的 CNN(卷积神经网络)。我有一个包含 1000 张图像的数据集,这些图像不足以适应我设计的模型,我想在训练 CNN 之前增加图像的数量。如何使用 python 扩充我的数据集。

4

2 回答 2

1

你可以使用 keras 的ImageDataGenerator类。此类具有许多有趣的功能来生成增强的图像数据集。此类也可用于扩充文件夹中的数据集。
例如

generator = ImageDataGenerator(
    rotation_range=20,
    width_shift_range=0.2,
    height_shift_range=0.2,
    horizontal_flip=True)

有关ImageDataGenerator该类的更多信息,请参见此处

现在您可以将此生成器与您的 keras 模型一起使用,如下所示

model.fit_generator(generator.flow(x_train, y_train, batch_size= ... ),
                    steps_per_epoch= .... , epochs= ... )

flow_from_directory类的文件夹使用方法生成增强数据集。

model.fit_generator(generator.flow_from_directory(directory, target_size=(64, 64), batch_size= ...),steps_per_epoch= .... , epochs= ... )

于 2019-05-10T11:09:39.720 回答
0

这是 tensorflow 的内置功能。查找tf.image的文档

例如,您可以通过 using 使用以下功能tf.Dataset.map

  • tf.image.random_flip_up_down
  • tf.image.random_flip_left_right
  • tf.image.random_contrast
  • tf.image.random_brightness
于 2019-05-10T09:27:18.640 回答