TensorFlow读取器基类:tf.ReaderBase
tf.ReaderBase 函数
ReaderBase 类
定义在:tensorflow/python/ops/io_ops.py
请参阅指南:输入和读取器>读取器
用于不同读取器类型的基类,每个步骤生成一条记录.
从概念上讲,读取器将字符串 "work units" 转换为 records (key, value pairs).通常,"work units" 是文件名,从这些文件的内容中提取记录.我们希望每步生成一条记录, 但是一个 work units 可以对应许多条记录.
因此, 我们引入了一些使用队列的解耦.当请求生成记录(通过Read())时,队列包含 work units 和从队列中取出的读取器,但它已完成了最后一个工作单元.
属性
- reader_ref
操作,实现读者. - supports_serialize
读者实现是否可以序列化其状态.
方法
__init__
__init__(
reader_ref,
supports_serialize=False
)
创建一个新的 ReaderBase.
参数:
- reader_ref:实现读取器的操作.
- supports_serialize:如果读取器实现可以序列化其状态,则为 true.
num_records_produced
num_records_produced(name=None)
返回此读取器生成的记录数.
这与已成功读取的执行次数相同.
参数:
- name:操作的名称(可选).
返回:
一个 Int64 类型的张量.
num_work_units_completed
num_work_units_completed(name=None)
返回此读取器已完成处理的工作单元数.
参数:
- name:操作的名称(可选).
返回:
一个 Int64 类型的张量.
read
read(
queue,
name=None
)
返回读取器生成的下一条记录(键,值)【record (key, value)】对.
如果需要,将从队列中取出一个工作单元(例如,当读取器需要从一个新文件开始读取,因为它已经完成了前一个文件).
参数:
- queue:一个队列或一个可变的字符串张量,表示队列的句柄,带有字符串工作项.
- name:操作的名称(可选).
返回:
张量(key, value)元组.key:一个字符串标量张量.value:一个字符串标量张量.
read_up_to
read_up_to(
queue,
num_records,
name=None
)
返回由读取器生成的 num_records(key,value)对.
如果需要的话,会从队列中取出一个工作单元(例如,Reader 需要从一个新文件开始读取,因为它已经完成了前一个文件).即使在最后一批之前,它也可能比 num_records 返回的少.
参数:
- queue:一个队列或一个可变的字符串张量,表示队列的句柄,带有字符串工作项.
- num_records:要读取的记录数.
- name:操作的名称(可选).
返回:
张量(key, value)元组.key:一个一维的字符串张量.value:一个一维的字符串张量.
reset
reset(name=None)
将读取器恢复到初始状态.
参数:
- name:操作的名称(可选).
返回:
创建的操作.
restore_state
restore_state(
state,
name=None
)
将读取器还原到以前保存的状态.
并非所有的读取器都支持还原,所以这可能会产生一个未实现的错误.
参数:
- state:一个字符串张量.与读取器的 SerializeState 类型匹配的结果.
- name:操作的名称(可选).
返回:
创建的操作.
serialize_state
serialize_state(name=None)
产生一个字符串张量用来编码读取器的状态.
不是所有的读取器都支持序列化,所以这可能会产生一个未实现的错误.
参数:
- name:操作的名称(可选).
返回:
一个字符串张量.