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


Python tf.data.experimental.make_batched_features_dataset用法及代碼示例


Example protos 返回特征字典的Dataset

用法

tf.data.experimental.make_batched_features_dataset(
    file_pattern, batch_size, features, reader=None, label_key=None,
    reader_args=None, num_epochs=None, shuffle=True, shuffle_buffer_size=10000,
    shuffle_seed=None, prefetch_buffer_size=None, reader_num_threads=None,
    parser_num_threads=None, sloppy_ordering=False, drop_final_batch=False
)

參數

  • file_pattern 包含Example 記錄的文件或文件路徑模式的列表。有關模式規則,請參見tf.io.gfile.glob
  • batch_size 一個 int 表示要在單個批次中組合的記錄數。
  • features dict 將函數鍵映射到 FixedLenFeatureVarLenFeature 值。見tf.io.parse_example
  • reader 可以使用filenames 張量和(可選)reader_args 調用並返回Example 張量的Dataset 的函數或類。默認為 tf.data.TFRecordDataset
  • label_key (可選)與鍵標簽對應的字符串存儲在 tf.Examples 中。如果提供,它必須是 features 鍵之一,否則會導致 ValueError
  • reader_args 要傳遞給閱讀器類的附加參數。
  • num_epochs 整數,指定讀取數據集的次數。如果沒有,則永遠循環遍曆數據集。默認為 None
  • shuffle 一個布爾值,指示輸入是否應該被打亂。默認為 True
  • shuffle_buffer_size ShuffleDataset 的緩衝區大小。大容量確保更好的洗牌,但會增加內存使用和啟動時間。
  • shuffle_seed 用於洗牌的隨機化種子。
  • prefetch_buffer_size 為了提高性能而預取的特征批次數。推薦值是每個訓練步驟消耗的批次數。默認為auto-tune。
  • reader_num_threads 用於讀取 Example 記錄的線程數。如果>1,結果將被交錯。默認為 1
  • parser_num_threads 用於將 Example 張量解析為 Feature 張量字典的線程數。默認為 2
  • sloppy_ordering 如果 True ,讀取性能將以非確定性排序為代價來提高。如果 False ,則生成的元素的順序在洗牌之前是確定的(如果 shuffle=True ,元素仍然是隨機的。請注意,如果設置了種子,那麽洗牌後的元素順序是確定的)。默認為 False
  • drop_final_batch 如果 True ,並且批次大小沒有平均分配輸入數據集大小,則最終的較小批次將被丟棄。默認為 False

返回

  • dict 元素的數據集,(或 dict 元素和標簽的元組)。每個 dict 將函數鍵映射到 TensorSparseTensor 對象。

拋出

  • TypeError 如果reader 類型錯誤。
  • ValueError 如果 label_key 不是 features 鍵之一。

如果提供了label_key 參數,則返回由特征字典和標簽組成的元組的Dataset

例子:

serialized_examples = [
  features {
    feature { key:"age" value { int64_list { value:[ 0 ] } } }
    feature { key:"gender" value { bytes_list { value:[ "f" ] } } }
    feature { key:"kws" value { bytes_list { value:[ "code", "art" ] } } }
  },
  features {
    feature { key:"age" value { int64_list { value:[] } } }
    feature { key:"gender" value { bytes_list { value:[ "f" ] } } }
    feature { key:"kws" value { bytes_list { value:[ "sports" ] } } }
  }
]

我們可以使用參數:

features:{
  "age":FixedLenFeature([], dtype=tf.int64, default_value=-1),
  "gender":FixedLenFeature([], dtype=tf.string),
  "kws":VarLenFeature(dtype=tf.string),
}

預期的輸出是:

{
  "age":[[0], [-1]],
  "gender":[["f"], ["f"]],
  "kws":SparseTensor(
    indices=[[0, 0], [0, 1], [1, 0]],
    values=["code", "art", "sports"]
    dense_shape=[2, 2]),
}

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.data.experimental.make_batched_features_dataset。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。