深度学习基础之《TensorFlow框架(11)—数据读取》

一、TenorFlow读取文件方法

1、有三种获取数据到TensorFlow程序的方法

2、QueueRunner
基于队列的输入管道,从TensorFlow图形开头的文件中读取数据
注:TensorFlow2.0版本用tf.data模块代替了QueueRunner

3、Feeding
占位符 搭配 feed_dict使用
运行每一秒时,python代码提供数据

4、预加载数据
TensorFlow图中的张量包含所有数据(对于小数据集)

二、QueueRunner文件读取流程

1、第一阶段
构造文件名队列

2、第二阶段
读取与解码

3、第三阶段
批处理

4、手动开启线程

三、tf.data读取文件

1、tf.data的核心是tf.data.Dataset类

2、使用内存中的对象和张量创建数据集
(1)tf.data.Dataset.from_tensors()
读取单个元素数据集

(2)tf.data.Dataset.from_tensor_slices()
from_sensors生成一个仅包含单个元素的数据集。要将输入张量切片为多个元素,请使用from_sensor_slices

(3)例子
dataset = tf.data.Dataset.from_tensors([1, 2, 3])
dataset读取的是[array([1, 2, 3], dtype=int32)]

dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3])
dataset读取的是[1, 2, 3]三个元素

3、使用TFRecord格式创建数据集
tf.data.TFRocrdDataset()

4、使用文本文件创建数据集
tf.data.TextLineDataset()
其中每一行包含一个数据样本。一些示例包括日志消息,问题答案等

5、使用csv文件创建数据集
tf.data.experimental.CsvDataset()
tf.data.experimental.make_csv_dataset()提供更高级功能

6、数据集对象的预处理
tf.data.Dataset类为我们提供了多种数据集预处理方法

(1)Dataset.map(f)
对数据集中的每个元素应用函数f,得到一个新的数据集(这部分往往结合tf.io进行读写和解码文件,tf.image进行图像处理)

(2)Dataset.shuffle(buffer_size)
将数据集打乱(设定一个固定大小的缓冲区(Buffer),取出前buffer_size个元素放入,并从缓冲区中随机采样,采样后的数据用后续数据替换)

(3)Dataset.batch(batch_size)
将数据集分成批次,即对每batch_size个元素,使用tf.stack()在第0维合并,成为一个元素

(4)Dataset.prefetch()
预取出数据集中的若干个元素(可提升训练流程并行效率)

除此以外,还有Dataset.repeat()(重复数据集的元素)、Dataset.reduce()(与Map相对的聚合操作)、Dataset.take()(截取数据集中的前若干个元素)等,可参考API文档进一步了解
 

最近更新

  1. TCP协议是安全的吗?

    2024-04-01 05:30:06       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-01 05:30:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-01 05:30:06       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-01 05:30:06       20 阅读

热门阅读

  1. 【WPF应用27】C#中的Slider控件详解与应用示例

    2024-04-01 05:30:06       18 阅读
  2. 浅谈深度学习的学习方法

    2024-04-01 05:30:06       16 阅读
  3. 2024最新华为OD机试试题库全 -【数的分解】- C卷

    2024-04-01 05:30:06       19 阅读
  4. 算法打卡day22

    2024-04-01 05:30:06       16 阅读
  5. qtcreator msvc编译器 链接外部库的方式

    2024-04-01 05:30:06       17 阅读
  6. MATLAB实现在LSB低三位嵌入图像

    2024-04-01 05:30:06       17 阅读
  7. 小程序归类及适合企业运用

    2024-04-01 05:30:06       16 阅读
  8. Web框架开发-Django信号

    2024-04-01 05:30:06       13 阅读