下面是关于“Keras中 ImageDataGenerator函数的参数用法”的完整攻略。
ImageDataGenerator函数
ImageDataGenerator是Keras中用于图像数据增强的函数。它可以生成经过随机变换的图像,从而扩充训练数据集,提高模型的泛化能力。以下是ImageDataGenerator函数的基本用法:
from keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(
rescale=1./255,
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest'
)
在上面的示例中,我们创建了一个名为datagen的ImageDataGenerator对象,并设置了一些参数。下面我们将逐一介绍这些参数的用法。
参数用法
rescale
rescale参数用于对图像进行缩放。将图像的像素值除以255,可以将像素值缩放到0到1之间。以下是rescale参数的示例:
datagen = ImageDataGenerator(rescale=1./255)
rotation_range
rotation_range参数用于对图像进行随机旋转。可以设置旋转角度的范围。以下是rotation_range参数的示例:
datagen = ImageDataGenerator(rotation_range=20)
width_shift_range和height_shift_range
width_shift_range和height_shift_range参数用于对图像进行随机平移。可以设置平移的范围。以下是width_shift_range和height_shift_range参数的示例:
datagen = ImageDataGenerator(width_shift_range=0.2, height_shift_range=0.2)
shear_range
shear_range参数用于对图像进行随机剪切。可以设置剪切的范围。以下是shear_range参数的示例:
datagen = ImageDataGenerator(shear_range=0.2)
zoom_range
zoom_range参数用于对图像进行随机缩放。可以设置缩放的范围。以下是zoom_range参数的示例:
datagen = ImageDataGenerator(zoom_range=0.2)
horizontal_flip
horizontal_flip参数用于对图像进行随机水平翻转。可以设置是否进行水平翻转。以下是horizontal_flip参数的示例:
datagen = ImageDataGenerator(horizontal_flip=True)
fill_mode
fill_mode参数用于对图像进行填充。可以设置填充的方式。以下是fill_mode参数的示例:
datagen = ImageDataGenerator(fill_mode='nearest')
示例1:使用ImageDataGenerator进行图像分类
以下是使用ImageDataGenerator进行图像分类的示例:
from keras.preprocessing.image import ImageDataGenerator
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(
'train',
target_size=(150, 150),
batch_size=32,
class_mode='binary'
)
validation_generator = test_datagen.flow_from_directory(
'validation',
target_size=(150, 150),
batch_size=32,
class_mode='binary'
)
在上面的示例中,我们使用ImageDataGenerator对训练数据集进行数据增强,并使用flow_from_directory函数生成训练数据集和验证数据集的迭代器。
示例2:使用ImageDataGenerator进行图像分割
以下是使用ImageDataGenerator进行图像分割的示例:
from keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True
)
train_generator = datagen.flow_from_directory(
'train',
target_size=(256, 256),
batch_size=32,
class_mode=None,
seed=1,
color_mode='rgb'
)
validation_generator = datagen.flow_from_directory(
'validation',
target_size=(256, 256),
batch_size=32,
class_mode=None,
seed=1,
color_mode='rgb'
)
在上面的示例中,我们使用ImageDataGenerator对训练数据集进行数据增强,并使用flow_from_directory函数生成训练数据集和验证数据集的迭代器。这里的class_mode设置为None,表示不需要标签,因为这里是进行图像分割。
总结
在本攻略中,我们介绍了Keras中ImageDataGenerator函数的参数用法,并提供了两个示例说明。可以使用这些示例来进行图像分类和图像分割。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Keras中 ImageDataGenerator函数的参数用法 - Python技术站