keras 图片生成器

简介: keras 中提供图片生成器 ImageDataGenerator, 通过设定不同的参数,来生成更多的数据从而达到小样本训练优质模型的能力。from keras.

keras 中提供图片生成器 ImageDataGenerator, 通过设定不同的参数,来生成更多的数据从而达到小样本训练优质模型的能力。

from keras.preprocessing.image import ImageDataGenerator

datagen = ImageDataGenerator(
        rotation_range=40,                                #  旋转范围
        width_shift_range=0.2,                          #  宽度调整范围
        height_shift_range=0.2,                         #  高度调整范围
        rescale=1./255,                                      #  尺度调整范围
        shear_range=0.2,                                  #  弯曲调整范围
        zoom_range=0.2,                                  #  缩放调整范围
        horizontal_flip=True,                              #  水平调整范围
        brightness_range=0.3,                           #  亮度调整范围
        featurewise_center=True,                     #  是否特征居中
        featurewise_std_normalization=True,   #  特征是否归一化
        zca_whitening=True,                             #  是否使用 ZCA白化
        fill_mode='nearest')                               #  填充模式(图片大小不够时)

使用方法

  1. 数据对象

对象列表直接传入到 fit 函数中进行 ZCA 等预处理,然后调用 flow 函数来生成样本

(x_train, y_train), (x_test, y_test) = cifar10.load_data()
y_train = np_utils.to_categorical(y_train, num_classes)
y_test = np_utils.to_categorical(y_test, num_classes)

datagen = ImageDataGenerator(
    featurewise_center=True,
    featurewise_std_normalization=True,
    rotation_range=20,
    width_shift_range=0.2,
    height_shift_range=0.2,
    horizontal_flip=True)

# compute quantities required for featurewise normalization
# (std, mean, and principal components if ZCA whitening is applied)
datagen.fit(x_train)

# fits the model on batches with real-time data augmentation:
model.fit_generator(datagen.flow(x_train, y_train, batch_size=32),
                    steps_per_epoch=len(x_train) / 32, epochs=epochs)

# here's a more "manual" example
for e in range(epochs):
    print('Epoch', e)
    batches = 0
    for x_batch, y_batch in datagen.flow(x_train, y_train, batch_size=32):
        model.fit(x_batch, y_batch)
        batches += 1
        if batches >= len(x_train) / 32:
            # we need to break the loop by hand because
            # the generator loops indefinitely
            break
  1. 文件夹

同对象操作类似,这里只是将 flow 函数转化为 flow_from_directory 函数来完成相应的样本生成。

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(
        'data/train',
        target_size=(150, 150),
        batch_size=32,
        class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
        'data/validation',
        target_size=(150, 150),
        batch_size=32,
        class_mode='binary')

model.fit_generator(
        train_generator,
        steps_per_epoch=2000,
        epochs=50,
        validation_data=validation_generator,
        validation_steps=800)

参考

Building powerful image classification models using very little data
Image Preprocessing

目录
相关文章
|
数据采集 PyTorch 数据处理
Pytorch学习笔记(3):图像的预处理(transforms)
Pytorch学习笔记(3):图像的预处理(transforms)
1087 1
Pytorch学习笔记(3):图像的预处理(transforms)
|
17天前
|
机器学习/深度学习 API 算法框架/工具
【Tensorflow+keras】Keras API三种搭建神经网络的方式及以mnist举例实现
使用Keras API构建神经网络的三种方法:使用Sequential模型、使用函数式API以及通过继承Model类来自定义模型,并提供了基于MNIST数据集的示例代码。
30 12
|
17天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
【Tensorflow+Keras】keras实现条件生成对抗网络DCGAN--以Minis和fashion_mnist数据集为例
如何使用TensorFlow和Keras实现条件生成对抗网络(CGAN)并以MNIST和Fashion MNIST数据集为例进行演示。
23 3
|
18天前
|
机器学习/深度学习 测试技术 API
【Python-Keras】Keras搭建神经网络模型的Model解析与使用
这篇文章详细介绍了Keras中搭建神经网络模型的`Model`类及其API方法,包括模型配置、训练、评估、预测等,并展示了如何使用Sequential模型和函数式模型来构建和训练神经网络。
17 1
|
17天前
|
API 算法框架/工具
【Tensorflow+keras】使用keras API保存模型权重、plot画loss损失函数、保存训练loss值
使用keras API保存模型权重、plot画loss损失函数、保存训练loss值
12 0
|
API 算法框架/工具
越来越火的tf.keras模型,这三种构建方式记住了,你就是大佬!!!
越来越火的tf.keras模型,这三种构建方式记住了,你就是大佬!!!
104 0
|
机器学习/深度学习 存储 PyTorch
怎么调用pytorch中mnist数据集
怎么调用pytorch中mnist数据集
175 0
|
PyTorch 算法框架/工具
【pytorch】pytorch代码中实现MNIST、cifar10等数据集本地读取
pytorch代码中实现MNIST、cifar10等数据集本地读取
【pytorch】pytorch代码中实现MNIST、cifar10等数据集本地读取
|
缓存 NoSQL MongoDB
TensorFlow2.0(10):加载自定义图片数据集到Dataset
TensorFlow2.0(10):加载自定义图片数据集到Dataset
|
移动开发 算法 算法框架/工具
DL之DCGAN(Keras框架):基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成(保存h5模型→加载模型)
DL之DCGAN(Keras框架):基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成(保存h5模型→加载模型)
DL之DCGAN(Keras框架):基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成(保存h5模型→加载模型)