图像数据预处理

包括:

(1)读取图像文件

(2)将 .jpg文件解码为 RGB 像素网格。

(3) 将这些像素网格转换为浮点数张量。

(4)将像素值(0~255 范围内)缩放到 [0, 1] 区间

from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
    train_dir,        #图像目录
    target_size=(150, 150),      #调整的图像尺寸
    batch_size=20,
    class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
    validation_dir,
    target_size=(150, 150),
    batch_size=20,
    class_mode='binary')

利用生成器处理的数据拟合方法使用fit_generator,效果和 fit 相同

history = model.fit_generator(
   train_generator,
   steps_per_epoch=100,         #样本数除以batch_size
   epochs=30,
   validation_data=validation_generator,
   validation_steps=50)

数据增强

datagen = ImageDataGenerator(
   rotation_range=40,        #随机旋转的角度范围
   width_shift_range=0.2,       #图像在水平或垂直方向上平移的范围
   height_shift_range=0.2,
   shear_range=0.2,            #随机错切变换的角度
   zoom_range=0.2,           #随机缩放发范围
   horizontal_flip=True,        #随机将一半图像水平翻转
   fill_mode='nearest')          #填充新创建像素的方法


#例子
#训练集进行数据增强
train_datagen = ImageDataGenerator(
   rescale=1./255,
   rotation_range=40,
   width_shift_range=0.2,
   height_shift_range=0.2,
   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_dir,
    target_size=(150, 150), 
    batch_size=32,
    class_mode='binary') 
validation_generator = test_datagen.flow_from_directory(
    validation_dir,
    target_size=(150, 150),
    batch_size=32,
    class_mode='binary')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值