这篇文章主要介绍了keras中的图像生成器ImageDataGenerator的用法,详细介绍了每个参数什么意思,哪些参数 比较常用,这个函数也是工程中一般都会用的。
ImageDataGenerator
位于from tensorflow.keras.preprocessing.image import ImageDataGenerator
参数介绍:
- featurewise_center:使输入的均值为0,这个是以整个数据集的分布来处理的,所以变换后整体变化不大
- samplewise_center:使每个样本的均值为0,这个是针对每幅图片进行的,处理后的图像与原图差别很大
- featurewise_std_normalization:输入除以自身标准差
- samplewise_std_normalization:每个样本除以自身标准差
- zca_epsilon:ZCA白化中的epsilon参数,默认为1e-6
- zca_whitening:是否开启ZCA白化,取出图像颜色的冗余信息
- rotation_range:随机旋转的角度范围,整型,范围为[0,target]
- width_shift_range:图像水平偏移的范围
- height_shift_range:图像垂直偏移的范围,这两个一般不用
- brightness_range:亮度变化范围,包含两个浮点型的tuple或者list#旋转
- shear_range:错切变换,保持所有点的x坐标(或者y坐标)保持不变,而对应的y坐标(或者x坐标)则按比例发生平移,且平移的大小和该点到x轴(或y轴)的垂直距离成正比,效果像是图像被拉伸
- zoom_range:让图片在长或宽的方向进行放大,可以理解为某方向的resize,参数大于0小于1时,执行的是放大操作,当参数大于1时,执行的是缩小操作
- channel_shift_range:随机的通道偏移
- fill_mode:填充模式,”constant”, “nearest”, “reflect” or “wrap”,默认是”nearest”,比如在旋转时,超出尺寸的部分会怎么处理
- cval:填充的值,只有在
fill_mode = "constant"
时才有作用 - horizontal_flip:随机水平翻转
- vertical_flip:随机垂直翻转
- rescale:缩放因子,会乘在像素值上,默认是None
- preprocessing_function:自定义的处理函数,在其它预处理方法之后运行
- data_format:这个设置的是通道的模式,有
channels_first
和channels_last
两种 - validation_split:生成验证集的比例(在0和1之间)
- dtype:制定生成的数据格式
flow_from_directory,只介绍一般情况下用到的参数
- directory:数据的路径,要求:将数据分为train和test两个文件夹,每个文件夹下每一类别再存放进一个子文件夹
- target_size:读取的每个图片都会resize到这个尺寸
- color_mode:默认rgb,一般不改变
- classes:识别的类别名称,类似于[“dog”,”cat”,”fish”],训练和测试要一致
- class_mode:分类模式,默认是categorical,表示多分类
- batch_size:一批的大小
- shuffle:是否打乱数据,这个是必须的,默认为True
- seed:随机操作的随机种子
例子
1 |
|