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