阅读(2384) (11)

TensorFlow读取器基类:tf.ReaderBase

2017-12-01 11:02:41 更新
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:操作的名称(可选).

返回:

一个字符串张量.