當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。