目录
用于不同读取器类型的基类,该基类将生成每个步骤的记录。从概念上讲,读取器将字符串“工作单元”转换为记录(键、值对)。通常,“工作单元”是文件名,记录是从这些文件的内容中提取的。我们希望每个步骤生成一条记录,但是一个工作单元可以对应多个记录。因此,我们引入了一些使用队列的解耦。队列包含工作单元,当请求读取器生成一条记录(通过Read())但它已经完成了最后一个工作单元时,读取器将从队列中退出。
Eager Compatibility
读取器与急于执行不兼容。相反,请使用tf.data将数据放入模型中。
1、__init__
__init__(
reader_ref,
supports_serialize=False
)
创建一个新的ReaderBase。
参数:
- reader_ref:实现阅读器的操作。
- supports_serialize:如果阅读器实现可以序列化其状态,则为True。
可能产生的异常:
RuntimeError
: If eager execution is enabled.
2、属性
- reader_ref:实现读取器的Op。
- supports_serialize:阅读器实现是否可以序列化其状态。
3、num_records_produced
num_records_produced(name=None)
返回此阅读器已生成的记录的数量。这与成功执行的读操作数量相同。
参数:
- name:操作的名称(可选)。
返回值:
- 一个int64张量。
4、num_work_units_completed
num_work_units_completed(name=None)
返回此阅读器已完成处理的工作单元的数量。
参数:
- name:操作的名称(可选)。
返回值:
- 一个int64张量。
5、read
read(
queue,
name=None
)
返回读取器生成的下一个记录(键、值)对。如果需要,将一个工作单元从队列中取出(例如,当读取器需要开始从一个新文件中读取,因为它已经完成了前一个文件)。
参数:
queue
:用字符串工作项表示队列句柄的队列或可变字符串张量。- name:操作的名称(可选)。
返回值:
- 张量的元组(键、值)。
key
:弦标量张量。value
:字符串标量张量。
6、read_up_to
read_up_to(
queue,
num_records,
name=None
)
返回最多由读取器生成的num_records(键、值)对。如果需要,将一个工作单元从队列中取出(例如,当读取器需要开始从一个新文件中读取,因为它已经完成了前一个文件)。甚至在最后一个批处理之前,它返回的值也可能小于num_records。
参数:
queue
:用字符串工作项表示队列句柄的队列或可变字符串张量。- num_records:要读取的记录数量。
- name:操作的名称(可选)。
返回值:
- 张量(键、值)的元组。
- 键:一维弦张量。
- 值:一维弦张量。
7、reset
reset(name=None)
将阅读器恢复到其初始清洁状态。
参数:
- name:操作的名称(可选)。
返回值:
- 创建操作。
8、restore_state
restore_state(
state,
name=None
)
将阅读器恢复到以前保存的状态。并非所有阅读器都支持恢复,因此这可能会产生未实现的错误。
参数:
state
:一个弦张量。具有匹配类型的阅读器的串行化的结果。- name:操作的名称(可选)。
返回值:
- 创建操作。
9、serialize_state
serialize_state(name=None)
生成一个字符串张量来编码阅读器的状态。并不是所有阅读器都支持序列化,因此这可能会产生未实现的错误。
参数:
- name:操作的名称(可选)。
返回值:
- 一个字符串张量。