在Keras生成器中对多个图像应用相同的变换,可以通过以下步骤实现:
这样,通过自定义的生成器类,可以在Keras中对多个图像应用相同的变换。
以下是一个示例代码:
from keras.preprocessing.image import ImageDataGenerator
class CustomImageDataGenerator(ImageDataGenerator):
def flow_from_directory(self, directory, target_size=(256, 256), batch_size=32, class_mode='categorical'):
generator = super().flow_from_directory(directory, target_size=target_size, batch_size=batch_size, class_mode=class_mode)
while True:
x_batch, y_batch = next(generator)
for i in range(len(x_batch)):
seed = np.random.randint(0, 999999)
x_batch[i] = self.apply_transform(x_batch[i], seed=seed)
yield x_batch, y_batch
# 使用自定义的生成器类
datagen = CustomImageDataGenerator(rescale=1./255, rotation_range=20, width_shift_range=0.2, height_shift_range=0.2)
train_generator = datagen.flow_from_directory('train', target_size=(256, 256), batch_size=32, class_mode='categorical')
在上述示例中,自定义的生成器类CustomImageDataGenerator继承自ImageDataGenerator,并重写了flow_from_directory方法。在每次迭代中,通过调用apply_transform方法,对每个图像应用相同的变换。
这样,通过使用自定义的生成器类,可以在Keras中对多个图像应用相同的变换。
领取专属 10元无门槛券
手把手带您无忧上云