我从这里得到了以下示例。
train_datagen = ImageDataGenerator( rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True)test_datagen = ImageDataGenerator(rescale=1./255)train_generator = train_datagen.flow_from_directory( 'data/train', target_size=(150, 150), batch_size=32, class_mode='binary')validation_generator = test_datagen.flow_from_directory( 'data/validation', target_size=(150, 150), batch_size=32, class_mode='binary')
这里有两个独立的目录用于训练和验证数据。只是好奇我是否可以从同一个目录而不是两个独立的目录中获取训练和验证数据的分割?有示例吗?
回答:
您可以向ImageDataGenerator
类实例传递validation_split
参数(0到1之间的数字)来将数据分割成训练和验证集:
generator = ImagaDataGenerator(..., validation_split=0.3)
然后向flow_from_directory
传递subset
参数来指定训练和验证生成器:
train_gen = generator.flow_from_directory(dir_path, ..., subset='training')val_gen = generator.flow_from_directory(dir_path, ..., subset='validation')
注意: 如果您为ImageDataGenerator
设置了增强参数,那么使用这个解决方案时,训练和验证图像都将被增强。