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

目录
相关文章
|
文字识别 安全 API
文字识别OCR的私有化部署
文字识别OCR的私有化部署【1月更文挑战第24天】【1月更文挑战第116篇】
597 1
|
网络协议 Linux 网络安全
curl(http命令行工具):Linux下最强大的网络数据传输工具
curl(http命令行工具):Linux下最强大的网络数据传输工具
565 0
|
网络安全 数据库
【保姆级教程】基于阿里云搭建网站,看这篇就够了!
本文演示了三种网站的搭建,分别是:博客、论坛、个人作品。从域名选择,到阿里云服务器的购买,到最后的网站搭建。
【保姆级教程】基于阿里云搭建网站,看这篇就够了!
|
6月前
|
存储 编解码 Prometheus
大模型推理加速实战:vLLM 部署 Llama3 的量化与批处理优化指南
本文详解如何通过量化与批处理优化,在vLLM中高效部署Llama3大模型。涵盖内存管理、推理加速及混合策略,提升吞吐量并降低延迟,适用于大规模语言模型部署实践。
1606 2
|
9月前
|
弹性计算 运维 Ubuntu
在阿里云ECS云服务器上安装、配置及高效使用Docker与Docker Compose
本文介绍了在阿里云ECS上使用Ubuntu系统安装和配置Docker及Docker Compose的详细步骤。通过这些工具,可以快速部署、弹性扩展和高效管理容器化应用,满足开发和运维需求。内容涵盖Docker的安装、镜像源配置、创建Web程序镜像以及使用Docker Compose部署WordPress等实际操作,并分享了使用体验,展示了阿里云实例的高性能和稳定性。
1715 4
|
并行计算 调度 C++
|
机器学习/深度学习 人工智能 算法
揭开深度学习与传统机器学习的神秘面纱:从理论差异到实战代码详解两者间的选择与应用策略全面解析
【10月更文挑战第10天】本文探讨了深度学习与传统机器学习的区别,通过图像识别和语音处理等领域的应用案例,展示了深度学习在自动特征学习和处理大规模数据方面的优势。文中还提供了一个Python代码示例,使用TensorFlow构建多层感知器(MLP)并与Scikit-learn中的逻辑回归模型进行对比,进一步说明了两者的不同特点。
657 2
|
存储 缓存 Java
createTempFile方法详解
createTempFile方法详解
|
Docker 容器
『Docker Compose』使用国内镜像极速安装Docker Compose
📣读完这篇文章里你能收获到 - 使用国内镜像极速安装Docker Compose
21624 0
『Docker Compose』使用国内镜像极速安装Docker Compose