前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【TensorFlow】TensorFlow读取数据

【TensorFlow】TensorFlow读取数据

作者头像
嵌入式视觉
发布2022-09-05 13:38:17
1.1K0
发布2022-09-05 13:38:17
举报
文章被收录于专栏:嵌入式视觉

Contents

在用CNN模型做图像识别/目标检测应用时,TensorFlow输入图像数据一般要转化为一个4维数组。

在TensorFlow框架中读取数据,tf官网提供了三种读取数据的方式:

  • 预加载数据: 在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况)。
  • 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据。
  • 从文件读取数据: 在TensorFlow图的起始, 让一个输入管线从文件中读取数据。

通俗来讲,现在TensorFlow(1.4版本以后)有三种读取数据方式:

  1. 使用placeholder读内存中的数据
  2. 使用queue读硬盘中的数据
  3. 使用Dataset方式读取

TensorFlow如何工作

TF的核心是用C++写的,这样的好处是运行快,缺点是调用不灵活。而Python恰好相反,所以结合两种语言的优势。涉及计算的核心算子和运行框架是用C++写的,并提供API给Python。Python调用这些API,设计训练模型(Graph),再将设计好的Graph给后端去执行。简而言之,Python的角色是Design,C++是Run。

TensorFlow读取数据

Preload data: constant 预加载数据

这种方式在项目中一般很少用,我只是在学习TensorFlow编程的时候用过,后面几乎从未用到。示例代码如下:

Feeding机制: placeholder, feed_dict

这种方式用的很多,一般和文件读取(文件队列,dataset数据集)方式结合起来使用。示例代码如下:

Reading From File:直接从文件中读取

直接从文件中读取数据的方法,在TensorFlow机制中有两种方法:

  • 多线程输入数据处理框架(利用TensorFlow队列)
  • 数据集Dataset(更高层的数据处理框架)

下面代码演示的是利用TensorFlow队列的机制进行数据读取的例子:

TensorFlow读取图片方法

  • 使用gfile读图片,decode输出是Tensor,eval后是ndarray
  • 使用WholeFileReader输入queue,decode输出是Tensor,eval后是ndarray
  • 使用read_file,decode输出是Tensor,eval后是ndarray
  • TFRecord文件
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • TensorFlow如何工作
  • TensorFlow读取数据
    • Preload data: constant 预加载数据
      • Feeding机制: placeholder, feed_dict
        • Reading From File:直接从文件中读取
        • TensorFlow读取图片方法
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档