ImageDataGenerator的作用
1.图片生成器,负责批次生成图片训练数据;
2.图片增强
tensorflow官网给出ImageDataGenerator的参数定义:
tf.keras.preprocessing.image.ImageDataGenerator(
featurewise_center=False, # featurewise_center: 布尔值。将输入数据的均值设置为 0,逐特征进行。
samplewise_center=False, # samplewise_center: 布尔值。将每个样本的均值设置为 0。
featurewise_std_normalization=False, # featurewise_std_normalization: Boolean. 布尔值。将输入除以数据标准差,逐特征进行。
samplewise_std_normalization=False, # samplewise_std_normalization: 布尔值。将每个输入除以其标准差。
zca_whitening=False, # zca_epsilon: ZCA 白化的 epsilon 值,默认为 1e-6。
zca_epsilon=1e-06, # zca_whitening: 布尔值。是否应用 ZCA 白化。
rotation_range=0, # rotation_range: 整数。随机旋转的度数范围。
width_shift_range=0.0,
# width_shift_range: 浮点数、一维数组或整数
#float: 如果 <1,则是除以总宽度的值,或者如果 >=1,则为像素值。
# 1-D 数组: 数组中的随机元素。
# int: 来自间隔 (-width_shift_range, +width_shift_range) 之间的整数个像素。
# width_shift_range=2 时,可能值是整数 [-1, 0, +1],与 width_shift_range=[-1, 0, +1] 相同;而 width_shift_range=1.0 时,可能值是 [-1.0, +1.0) 之间的浮点数。
height_shift_range=0.0,
# height_shift_range: 浮点数、一维数组或整数
# float: 如果 <1,则是除以总宽度的值,或者如果 >=1,则为像素值。
#1-D array-like: 数组中的随机元素。
# int: 来自间隔 (-height_shift_range, +height_shift_range) 之间的整数个像素。
# height_shift_range=2 时,可能值是整数 [-1, 0, +1],与 height_shift_range=[-1, 0, +1] 相同;而 height_shift_range=1.0 时,可能值是 [-1.0, +1.0) 之间的浮点数。
brightness_range=None, # brightness_range 元组或两个浮点数的列表。选择亮度偏移值的范围。
shear_range=0.0, # shear_range: 浮点数。剪切强度(以弧度逆时针方向剪切角度)。
zoom_range=0.0, # zoom_range: 浮点数 或 [lower, upper]。随机缩放范围。如果是浮点数,[lower, upper] = [1-zoom_range, 1+zoom_range]。
channel_shift_range=0.0, # channel_shift_range: 浮点数。随机通道转换的范围。
fill_mode='nearest',
# fill_mode: {"constant", "nearest", "reflect" or "wrap"} 之一。默认为 'nearest'。输入边界以外的点根据给定的模式填充:
# 'constant': kkkkkkkk|abcd|kkkkkkkk (cval=k)
#'nearest': aaaaaaaa|abcd|dddddddd
#'reflect': abcddcba|abcd|dcbaabcd
#'wrap': abcdabcd|abcd|abcdabcd
cval=0.0, # cval: 浮点数或整数。用于边界之外的点的值,当 fill_mode = "constant" 时。
horizontal_flip=False, # horizontal_flip: 布尔值。随机水平翻转。
vertical_flip=False, # vertical_flip: 布尔值。随机垂直翻转。
rescale=None, # rescale: 重缩放因子。默认为 None。如果是 None 或 0,不进行缩放,否则将数据乘以所提供的值(在应用任何其他转换之前)。
preprocessing_function=None, # 前运行。这个函数需要一个参数:一张图像(秩为 3 的 Numpy 张量),并且应该输出一个同尺寸的 Numpy 张量。
data_format=None,
# data_format: 图像数据格式,{"channels_first", "channels_last"} 之一。
# "channels_last" 模式表示图像输入尺寸应该为 (samples, height, width, channels),
# "channels_first" 模式表示输入尺寸应该为 (samples, channels, height, width)。
# 默认为 "channels_last"。
validation_split=0.0, # validation_split: 浮点数。Float. 保留用于验证的图像的比例(严格在0和1之间)。
dtype=None # dtype: 生成数组使用的数据类型。
)
参考:
https://tensorflow.google.cn/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator
https://keras.io/zh/preprocessing/image/
https://www.cnblogs.com/Dean0731/p/12341141.html