文章目录
前言
关于python深度学习(tensorflow 1.x版本)学习笔记02——线程队列与io操作(贰)
一、文件读取
1、文件读取流程
![文件读取流程图](https://i-blog.csdnimg.cn/blog_migrate/e1b211f4ffedd8e56ffdfd29260219d2.gif)
(gif图源tensorflow官网)
- 上图文件读取流程大致有几步:
- 构造文件名队列;
- 读取与解码;
- 批处理。
- 下图以csv文件读取为例,可直观地看出tensorflow读取csv文件的过程原理:
![](https://i-blog.csdnimg.cn/blog_migrate/a0eeb68f9812f183dc1c47e710802c0e.png)
(注:这些操作需要启动运行这些队列操作的线程,以便我们在进行文件读取的过程中能够顺利进行入队出队操作。)
2、文件读取基本知识
1)文件读取API-文件队列构造
-
tf.train.string_input_producer(string_tensor,,shuffle=True) #将输出字符串(例如文件名)输入至管道队列
-
string_tensor #含有文件名的1阶张量
-
num_epochs: #过几遍数据,默认无限过数据
-
return: #具有输出字符串的队列
2)文件读取API-文件阅读器
根据文件格式,选择对应的文件阅读器:
- 读取文本文件:class tf.TextLineReader
阅读文本文件逗号分隔值(CSV)格式,默认按行读取
return:读取器实例
- 读取二进制文件:tf.FixedLengthRecordReader(record_bytes)
要读取每个记录是固定数量字节的二进制文件
record_bytes:整型,指定每次读取的字节数
return:读取器实例
- 读取TfRecords文件:tf.TFRecordReader
- 有一个共同的读取方法:
read(file_queue):从队列