我正在研究CNN(卷积神经网络)以解决图像分类问题。我有一个包含1000张图像的数据集,这些图像不足以适合我设计的模型,并且我想在训练CNN之前增加图像数量。如何使用python扩充我的数据集。
答案 0 :(得分:0)
这是tensorflow中的内置函数。查找tf.image
的文档例如,您可以使用tf.Dataset.map
使用以下功能:
tf.image.random_flip_up_down
tf.image.random_flip_left_right
tf.image.random_contrast
tf.image.random_brightness
答案 1 :(得分:0)
您可以使用keras的ImageDataGenerator
类。此类具有许多有趣的功能,可以生成增强的图像数据集。此类也可以用于扩充文件夹中的数据集。
例如
generator = ImageDataGenerator(
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
horizontal_flip=True)
有关ImageDataGenerator
类的更多信息,请参见here。
现在,您可以按以下方式将此生成器与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= ... )