從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
將函數鍵映射到FixedLenFeature
或VarLenFeature
值。見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
將函數鍵映射到Tensor
或SparseTensor
對象。
拋出
-
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]),
}
相關用法
- Python tf.data.experimental.make_saveable_from_iterator用法及代碼示例
- Python tf.data.experimental.make_csv_dataset用法及代碼示例
- Python tf.data.experimental.RandomDataset.group_by_window用法及代碼示例
- Python tf.data.experimental.SqlDataset.enumerate用法及代碼示例
- Python tf.data.experimental.SqlDataset.zip用法及代碼示例
- Python tf.data.experimental.Counter用法及代碼示例
- Python tf.data.experimental.SqlDataset.shard用法及代碼示例
- Python tf.data.experimental.CsvDataset.window用法及代碼示例
- Python tf.data.experimental.RandomDataset.cache用法及代碼示例
- Python tf.data.experimental.SqlDataset.snapshot用法及代碼示例
- Python tf.data.experimental.CsvDataset.apply用法及代碼示例
- Python tf.data.experimental.DatasetInitializer用法及代碼示例
- Python tf.data.experimental.ignore_errors用法及代碼示例
- Python tf.data.experimental.unbatch用法及代碼示例
- Python tf.data.experimental.RandomDataset.map用法及代碼示例
- Python tf.data.experimental.CsvDataset.flat_map用法及代碼示例
- Python tf.data.experimental.assert_cardinality用法及代碼示例
- Python tf.data.experimental.CsvDataset.random用法及代碼示例
- Python tf.data.experimental.save用法及代碼示例
- Python tf.data.experimental.CsvDataset.cardinality用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.data.experimental.make_batched_features_dataset。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。