首页 > 其他分享 >keras:ImageDataGenerator的flow方法

keras:ImageDataGenerator的flow方法

时间:2022-10-27 13:38:21浏览次数:44  
标签:keras flow ImageDataGenerator batch print 100 True size


本文说明keras的​​ImageDataGenerator​​​对象方法 ​​flow​​ 如何作用的。

如下为测试代码:

import time
from keras.preprocessing.image import ImageDataGenerator
import numpy as np

imgs=np.random.randint(0,10,size=(7,100,100,3))

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)

f=datagen.flow(imgs,[0,1,2,3,4,5,6],batch_size=3)

# print(f.next()[1])
# time.sleep(2)
# print(f.next()[1])
# time.sleep(2)
# print(f.next()[1])

for index,(x,y) in enumerate(f):
if index==10:
break
time.sleep(1)
print(x.shape,y)

输出结果:

(3, 100, 100, 3) [5 0 6]
(3, 100, 100, 3) [3 2 1]
(1, 100, 100, 3) [4]
(3, 100, 100, 3) [6 0 4]
(3, 100, 100, 3) [1 2 3]
(1, 100, 100, 3) [5]
(3, 100, 100, 3) [6 1 0]
(3, 100, 100, 3) [4 5 2]
(1, 100, 100, 3) [3]
(3, 100, 100, 3) [3 2 1]

分析可得,​​ImageDataGenerator​​​对象的flow方法,对输入数据​​(imgs,ylabel)​​打乱(默认参数,可设置)后,依次取batch_size的图片并逐一进行变换。取完后再循环。伪代码如下:

while(True):
if shuffle==True:
shuffle(x,y)#打乱
for i in range(0,len(x),batch_size):
x_batch=x[i:i+batch_size]
y_batch=y[i:i+batch_size]
ImagePro(x_batch)#数据增强
saveToFile()#保存提升后的图片
yield (x_batch,y_batch)

源码参考:​​/Lib/site-packages/keras/preprocessing/image.py​


标签:keras,flow,ImageDataGenerator,batch,print,100,True,size
From: https://blog.51cto.com/u_15847885/5800879

相关文章

  • keras:ImageDataGenerator的flow_from_directory方法
    结合上文,​​flow的ImageDataGenerator​​的分析,该部分伪代码如下:xm,y=getDataIndex()#获取所有文件夹中所有图片索引,以及文件夹名也即标签while(True):ifshuffle==Tr......
  • keras:fit_generator的训练过程
    以​​keras分类猫狗数据(中)使用CNN分类模型​​为例,其中的部分代码如下:#……train_pic_gen=ImageDataGenerator(rescale=1./255,rotation_range=20,width_shift_range=0.2,......
  • keras离线官方文档
    keras中文文档:​​​https://keras.io/zh/​​​(官方)​​​http://keras-cn.readthedocs.io/en/latest/​​由于官方文档(更新似乎快点儿)经常访问不了,所以下载查看。步骤1......
  • keras中application模型可视化
    问题描述keras提供了模型的可视化,如下:importkerasfromkerasimportmodels,layers,Modelfromkeras.applicationsimportVGG16conv_base=VGG16(weights='imagenet',inc......
  • keras中的keras.utils.to_categorical方法
    ​​to_categorical(y,num_classes=None,dtype='float32')​​将整型标签转为onehot。y为​​int​​数组,num_classes为标签类别总数,大于max(y)(标签从0开始的)。返回:如果nu......
  • keras SegNet实现
    代码位置​​https://github.com/lsh1994/keras-segmentation​​​模型结构我这里用到了vgg16微调作为编码器,读者可以参照着自定义层对称的编解码结构。训练结果......
  • keras SegNet使用池化索引(pooling indices)
    keras中不能直接使用池化索引。最近学习到SegNet(网上许多错的,没有用池化索引),其中下采样上采样用到此部分。此处用到自定义层。完整测试代码如下。"""@author:LiShiHang@so......
  • keras FCN实现(2)
    FCN-8/FCN-16Add了底层特征。FCN-8的实现,承接​​上篇​​。代码位置:​​​https://github.com/lsh1994/keras-segmentation​​结构:训练曲线:可视化结果:......
  • anaconda 下安装tensorflow & keras
    首先,同胞们要记住,你要做什么?该怎么做?你的目标是什么?千万不要因为中间遇到的连带问题,而忘记了你要做什么?一下开始介绍:????下载:官网速度很慢,容易断线:https://www.......
  • Keras搭建CNN进行人脸识别系列(四)--为模型训练准备人脸数据
          机器学习最本质的地方就是基于海量数据统计的学习,说白了,机器学习其实就是在模拟人类儿童的学习行为。举一个简单的例子,成年人并没有主动教孩子学习语言,但随着......