当需要对指定文件夹下的图片进行数据增广时,使用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. python安装包_迈出Python学习第一步:Python开发环境的下载与安装
  2. UA MATH565C 随机微分方程V Markov Family的算子
  3. 神策数据多少含金量?PICOOC 有品帮你智能称量
  4. body curl 设置post_深入说说postman发送post请求
  5. window下eclipse +cdt+cygwin做C,C++开发环境搭建 (转自:http://blog.csdn.net/thinkandchange/article/details/7935)
  6. 不用面部识别?亚马逊准备推出人手支付,0.3秒刷手支付
  7. SpringMVC的数据响应-回写数据-直接回写json格式字符串(应用)
  8. jquery替换onclick的方法
  9. python vb 哪个好学_最难学的七大编程语言,VB 第一,Python垫底,看你学的排第几...
  10. oracle杅擂踱阀葩,Oracle常用傻瓜问题1000问
  11. 机器学习基础(四十八)—— 概率
  12. python入门教程pdf-Python入门教程详解.pdf
  13. 使用IIS 7.0 Smooth Streaming 优化视频服务
  14. Tomcat日志设定
  15. java火柴人吃豆豆,4399游戏火柴人吃豆豆全图文通关攻略分享
  16. 现控笔记(六)线性定常系统综合
  17. 华硕天选笔记本电脑启动机器后搜索不到网络
  18. VMware VMFS分区表恢复
  19. 从实际游戏制作谈如何提高游戏中的打击感
  20. ggplot2的安装

热门文章

  1. 远程访问及控制——SSH远程管理及TCP Wrappers 访问控制
  2. 数字与千分位字符串互转
  3. VSCode编译C程序
  4. oracle 官网免登录下载
  5. 7.4多元线性回归实例1--python机器学习
  6. QT:停靠窗口(拥有自动合并分离的功能)
  7. java的回车换行符_java回车和换行符
  8. 如何自己撸一个简单的开关组件
  9. docx4j Word文档转换pdf- 解决中文问题和变量替换
  10. 形而上学与原理是什么