当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.lookup.TextFileInitializer用法及代码示例


来自文本文件的表初始值设定项。

用法

tf.lookup.TextFileInitializer(
    filename, key_dtype, key_index, value_dtype, value_index, vocab_size=None,
    delimiter='\t', name=None, value_index_offset=0
)

参数

  • filename 用于初始化的文本文件的文件名。该路径必须可以从图形初始化的任何地方访问(例如,训练师或评估工人)。文件名可以是标量 Tensor
  • key_dtype key 数据类型。
  • key_index 表示要从中获取表'key' 值的行信息的索引。
  • value_dtype value 数据类型。
  • value_index 表示要从中获取表'value' 值的行信息的索引。
  • vocab_size 文件中的元素数量(如果已知)。
  • delimiter 分隔行中字段的分隔符。
  • name 操作的名称(可选)。
  • value_index_offset 添加到从文件中提取的所有索引的数字 这对于用户希望为控制字符保留一个或多个低索引值的情况很有用。例如,如果您想确保没有词汇项映射到索引 0(因此您可以为掩码值保留 0),您可以将 value_index_offset 设置为 1;这意味着第一个词汇表元素被映射到 1 而不是 0。

抛出

  • ValueError 当文件名为空,或者表键和值数据类型与预期数据类型不匹配时。

属性

  • key_dtype 预期的表键 dtype。
  • value_dtype 预期的表值 dtype。

此初始化程序为文件中的每一行分配表中的一个条目。

要初始化的表的键和值类型由 key_dtypevalue_dtype 给出。

从每一行获取的键和值内容由 key_indexvalue_index 指定。

  • TextFileIndex.LINE_NUMBER 表示使用从零开始的行号,需要数据类型 int64。
  • TextFileIndex.WHOLE_LINE 表示使用整行内容,需要数据类型字符串。
  • >=0 表示使用基于 delimiter 的分割线的索引(从零开始)。

例如,如果我们有一个包含以下内容的文件:

import tempfile
f = tempfile.NamedTemporaryFile(delete=False)
content='\n'.join(["emerson 10", "lake 20", "palmer 30",])
f.file.write(content.encode('utf-8'))
f.file.close()

以下代码片段初始化了一个表,其中第一列作为键,第二列作为值:

  • emerson -> 10
  • lake -> 20
  • palmer -> 30
init= tf.lookup.TextFileInitializer(
   filename=f.name,
   key_dtype=tf.string, key_index=0,
   value_dtype=tf.int64, value_index=1,
   delimiter=" ")
table = tf.lookup.StaticHashTable(init, default_value=-1)
table.lookup(tf.constant(['palmer','lake','tarkus'])).numpy()

类似地将整行初始化为键,将行号初始化为值。

  • emerson 10 -> 0
  • lake 20 -> 1
  • palmer 30 -> 2
init = tf.lookup.TextFileInitializer(
  filename=f.name,
  key_dtype=tf.string, key_index=tf.lookup.TextFileIndex.WHOLE_LINE,
  value_dtype=tf.int64, value_index=tf.lookup.TextFileIndex.LINE_NUMBER)
table = tf.lookup.StaticHashTable(init, -1)
table.lookup(tf.constant('palmer 30')).numpy()
2

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.lookup.TextFileInitializer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。