码迷,mamicode.com
首页 > 其他好文 > 详细

tf.keras 用生成器读取图片数据+预处理

时间:2020-04-10 09:17:28      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:org   忽略   案例   generator   blob   directory   一个   自动   note   

0. 需求

  • 当训练的数据非常多时,是不希望分配过多的内存将数据存入,否则其他占用内存的数据处理步骤就没法进行了。我们最好是以小批量地方式读入数据,然后预处理,然后送到网络,之后释放内存,以此循环。

 

1. 方法的简要说明

  • tf.keras中有一个高度封装的图片预处理类:ImageDataGenerator
  • ImageDataGenerator类还实现了一个非常方便的自动读取训练集文件夹的方法:flow_from_directory()
  • 我们实例化一个ImageDataGenerator类后,设置预处理的参数;然后对实例调用flow_from_directory()方法。对该方法传递一个路径参数,路径为数据集所在目录。其中训练集和测试集要分成两个文件夹,并且每一个label对应的图片存放在以label命名的文件夹中。
  • 调用flow_from_directory()方法之后,会返回一个生成器。
  • 生成器可以用next()函数来在每次迭代中提取(X,y),或者也可以直接传递给实例化的模型类的fit()方法

(使用前建议shift+tab查看函数|类的说明文档)

 

2. 案例: 斯坦福120个狗品种分类

(忽略训练结果,只是示例数据读取和预处理)

<代码及运行结果>

https://nbviewer.jupyter.org/github/JoJoJohnSnow/JPnotes/blob/master/notes/%E7%94%A8%E7%94%9F%E6%88%90%E5%99%A8%E8%AF%BB%E5%8F%96%E5%9B%BE%E7%89%87%E6%95%B0%E6%8D%AE%E5%92%8C%E9%A2%84%E5%A4%84%E7%90%86.ipynb

(不要介意图片中的狗看起来像个地精)

tf.keras 用生成器读取图片数据+预处理

标签:org   忽略   案例   generator   blob   directory   一个   自动   note   

原文地址:https://www.cnblogs.com/mx0813/p/12670878.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!