文件读取

一、文件读取流程在这里插入图片描述
(一)文件读取API-文件队列构造
tf.train.string_input_producer(string_tensor,shuffle=True)
将输出字符串(例如文件名)输入到管道队列
1、string_tensor 含有文件名的1阶张量
2、num_epochs:过几遍数据,默认无限过数据
3、return:具有输出字符串的队列
(二)文件读取API-文件阅读器
根据文件格式,选择对应的文件阅读器
1、class tf.TextLineReader:阅读文本文件逗号分隔值(CSV)格式,默认按行读取
return:读取器实例
2、tf.FixedLengthRecordReader(record_bytes):要读取每个记录是固定数量字节的二进制文件
(1)record_bytes:整型,指定每次读取的字节数
(2)return:读取器实例
3、tf.TFRecordReader:读取TfRecords文件
有一个共同的读取方法:
read(file_queue):从队列中指定数量内容
返回一个Tensors元组(key文件名字,value默认的内容(行,字节))
(三)文件读取API-文件内容解码器
由于从文件中读取的是字符串,需要函数去解析这些字符串到张量
1、tf.decode_csv(records,record_defaults=None,field_delim = None,name = None)
将CSV转换为张量,与tf.TextLineReader搭配使用
(1)records:tensor型字符串,每个字符串是csv中的记录行
(2)field_delim:默认分割符”,”
(3)record_defaults:参数决定了所得张量的类型,并设置一个值在输入字符串中缺少使用默认值,如
2、tf.decode_raw(bytes,out_type,little_endian = None,name = None)
将字节转换为一个数字向量表示,字节为一字符串类型的张量,与函数tf.FixedLengthRecordReader搭配使用,二进制读取为uint8格式。
(四)开启线程操作
tf.train.start_queue_runners(sess=None,coord=None):收集所有图中的队列线程,并启动线程
1、sess:所在的会话中
2、coord:线程协调器
3、return:返回所有线程队列
(五)管道读端批处理
1、tf.train.batch(tensors,batch_size,num_threads = 1,capacity = 32,name=None)读取指定大小(个数)的张量
(1)tensors:可以是包含张量的列表
(2)batch_size:从队列中读取的批处理大小
(3)num_threads:进入队列的线程数
(4)capacity:整数,队列中元素的最大数量
(5)return:tensors
2、tf.train.shuffle_batch(tensors,batch_size,capacity,min_after_dequeue,num_threads=1,) :乱序读取指定大小(个数)的张量
min_after_dequeue:留下队列里的张量个数,能够保持随机打乱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值