当需要对指定文件夹下的图片进行数据增广时,使用keras的ImageDataGenerator类的flow_from_directory()方法可快速的实现

1.首先实例化ImageDataGenerator对象以自己想要的属性

 img_datagen = keras.preprocessing.image.ImageDataGenerator(featurewise_center=False,  samplewise_center=False, featurewise_std_normalization=False, samplewise_std_normalization=False, zca_whitening=False, zca_epsilon=1e-06, rotation_range=0, width_shift_range=0.0, height_shift_range=0.0, shear_range=0.0, zoom_range=0.0, horizontal_flip=False, vertical_flip=False, rescale=None, )

对于数据增强主要可能用到的属性如下,按自己的需求设置即可:

featurewise_center: 布尔值。将输入数据的均值设置为 0,逐特征进行。

samplewise_center: 布尔值。将每个样本的均值设置为 0。

featurewise_std_normalization: Boolean. 布尔值。将输入除以数据标准差,逐特征进行。

samplewise_std_normalization: 布尔值。将每个输入除以其标准差。

zca_epsilon: ZCA 白化的 epsilon 值,默认为 1e-6。

zca_whitening: 布尔值。是否应用 ZCA 白化。

rotation_range: 整数。随机旋转的度数范围。

width_shift_range: 浮点数、一维数组或整数

height_shift_range: 浮点数、一维数组或整数

shear_range: 浮点数。剪切强度(以弧度逆时针方向剪切角度)。

zoom_range: 浮点数 或 [lower, upper]。随机缩放范围。

channel_shift_range: 浮点数。随机通道转换的范围。

horizontal_flip: 布尔值。随机水平翻转。

vertical_flip: 布尔值。随机垂直翻转。

2. 调用flow_from_directory()函数

train_generator = train_datagen.flow_from_directory(directory = img_path,target_size=(224, 224),batch_size= batch_size,save_to_dir= "./data/test_data/",class_mode= class_mode)

可选参数如下

directory: 目标目录的路径。每个类应该包含一个子目录。任何在子目录树下的 PNG, JPG, BMP, PPM 或 TIF 图像,都将被包含在生成器中。

target_size: 整数元组 (height, width),默认:(256, 256)。所有的图像将被调整到的尺寸。

color_mode: “grayscale”, “rbg” 之一。默认:“rgb”。图像是否被转换成 1 或 3 个颜色通道。

classes: 可选的类的子目录列表(例如 [‘dogs’, ‘cats’])。默认:None。如果未提供,类的列表将自动从 directory 下的 子目录名称/结构 中推断出来,其中每个子目录都将被作为不同的类(类名将按字典序映射到标签的索引)。包含从类名到类索引的映射的字典可以通过 class_indices 属性获得。

class_mode: “categorical”, “binary”, “sparse”, “input” 或 None 之一。对于只进行数据增强,设置为None.

batch_size: 一批数据的大小(默认 32)。

save_to_dir: None 或 字符串(默认 None)。图片保存目录!!!

save_prefix: 字符串。 保存图片的文件名前缀(仅当 save_to_dir 设置时可用)。

save_format: “png”, “jpeg” 之一(仅当 save_to_dir 设置时可用)。默认:“png”。

interpolation: 在目标大小与加载图像的大小不同时,用于重新采样图像的插值方法。

3.小例子

注意事项: 1:class_mode设置为None,只生成图像 2:一定要调用生成器,写了个for循环一直调用(但是好像不会停,可以写个计数让它停下啦)

import keras
from keras_preprocessing.image import ImageDataGeneratordef generate_from_derictory(img_path,batch_size,class_mode = None):train_datagen = ImageDataGenerator(rescale=1./255,shear_range=0.2,zoom_range=0.2,featurewise_center=True,samplewise_center= True,featurewise_std_normalization= True,samplewise_std_normalization= True,zca_whitening= True,zca_epsilon=1e-06,rotation_range=0.3,width_shift_range=0.3,height_shift_range=0.3,brightness_range=None,channel_shift_range=0.2,fill_mode='nearest',cval=0.0,horizontal_flip=True,vertical_flip= True,validation_split=0.0)train_generator = train_datagen.flow_from_directory(directory=img_path,target_size=(224, 224),batch_size= batch_size,save_to_dir= "./data/aug_data/",class_mode= class_mode)return train_generatordata_gen = generate_from_derictory('./data/train_data/',64,None)
for im in data_gen:print("do some thing")

keras数据增广并保存到本地文件夹相关推荐

  1. Python爬取起点小说并保存到本地文件夹和MongoDB数据库中

    Python爬取起点小说并保存到本地MongoDB数据库中 工具:Python3.7 + Mongo4.0 + Pycharm """ 爬取起点小说<诡秘之主> ...

  2. python爬取正确但不出文件_python爬取糗事百科,该如何正确保存到本地文件夹?报错-问答-阿里云开发者社区-阿里云...

    我的程序已经可以爬取网络内容,但不太清楚怎么保存到当地文件夹,用网上方法试着做,但是有报错 import urllib import urllib.request import requests ## ...

  3. java读取局域网共享文件夹中文件并保存到本地文件夹

    在磁盘新建一个文件夹,右击文件夹属性,点击共享 点击网络和共享中心 设置文件夹可访问权限 到此就可以用本地ip加文件夹名称访问了,同局域网也可以通过改地址访问 文件夹的名称来自这张图的 网络路径 如果 ...

  4. java将邮件保存到本地文件夹_JavaMail 邮件文件夹管理

    到目前为止,我们已经在前面的章节主要介绍收件箱文件夹的工作.这是大多数邮件位于其中的默认文件夹.有些系统可能会调用它的收件箱和其他一些可能被其他一些名字来称呼它.但是,你总是可以从JavaMail A ...

  5. 机器学习17:用Keras实现图片数据增广的方法和实践

    Keras图片增强 CNN中图片具有平移不变形,旋转不变形,如下图,而在实际应用中训练数据常常不足, 或不均衡, 因此我们可以通过增强数据,扩展训练集. 我们可以对现有的数据,进行平移.翻转.旋转.缩 ...

  6. 【深度学习】利用一些API进行图像数据增广

    [深度学习]利用一些API进行图像数据增广 文章目录 [深度学习]利用一些API进行图像数据增广 1 先送上一份最强的翻转代码(基于PIL) 2 Keras中的数据增强API种类概述 3 特征标准化 ...

  7. 深度学习 之 数据增广(包含源码及注释文件更改)

    数据增广:平移,水平/垂直翻转,旋转,缩放,剪切,对比度,色彩抖动,噪声  #coding=utf-8 ################################################ ...

  8. 动手深度学习13——计算机视觉:数据增广、图片分类

    文章目录 一.数据增广 1.1 为何进行数据增广? 1.2 常见图片增广方式 1.2.1 翻转 1.2.2 切割(裁剪) 1.2.3 改变颜色 1.2.4 综合使用 1.3 使用图像增广进行训练 1. ...

  9. 嵌入式AI —— 6. 为糖葫芦加糖,浅谈深度学习中的数据增广

    没有读过本系列前几期文章的朋友,需要先回顾下已发表的文章: 开篇大吉 集成AI模块到系统中 模型的部署 CMSIS-NN介绍 从穿糖葫芦到织深度神经网络 又和大家见面了,上次本程序猿介绍了CMSIS- ...

最新文章

  1. RHEL6入门系列之二十七,源码安装及软件安装综合实例
  2. 第五章:系统困境之 你的努力忽略了关键限制因素
  3. 数据库修改后Hibernate的配置更新
  4. JavaScript------字符串与HTML格式相互转换
  5. 太大如何翻页固定表头_外行学 Python 爬虫 第六篇 动态翻页
  6. 制药企业BI系统方案整体设计分享
  7. Jupyter Lab的学习笔记
  8. 关于安装CNPM 与搭建VUE空白项目
  9. lock free(无锁并发)是什么
  10. paip.获取文件名从路径uapi java python php总结...
  11. 总结---JavaScript数组
  12. 天锐绿盾移动终端支持 Android、IOS 移动客户端
  13. Python3,为了“娑娜“,我花费3分钟把lol所有的英雄都下载了。
  14. 蚁群算法原理与实现(python)
  15. effective python pdf下载-《Effective Python》电子书pdf下载百度网盘
  16. MATLA雾霾下的交通标志识别系统[GUI界面]
  17. 2021年全球网络保险收入大约9593.9百万美元,预计2028年达到68230百万美元,2022至2028期间,年复合增长率CAGR为35.1%
  18. Crazy Number
  19. 微信小程序【小程序码传参,自定义埋点】
  20. js正则表达式验证字符串只包括大小写字母下划线和-

热门文章

  1. 最奇特的编程语言特征
  2. 如何在 Java 中进行日志记录
  3. python阶乘求和的代码_python小代码之阶乘求和
  4. xacro搭建ros仿真机器人(待更新)
  5. QT + VS2017 添加资源文件
  6. 一图看懂join、left join、right join、fulljoin间的区别
  7. 2012年度盘点:那些让人喷饭的坑爹段子
  8. 分布式数据库系统查询优化算法的研究
  9. STC用PCA测量脉宽_利用微处理器设计的电机数字测速系统,抗干扰能力强、测量精确...
  10. I9 9900K线程_雷蛇推出灵刃15工作室版 英特尔i9-9900KS上架开卖