表示一組可能很大的元素。
用法
tf.data.Dataset(
variant_tensor
)
參數
-
variant_tensor
表示數據集的 DT_VARIANT 張量。
屬性
-
element_spec
此數據集元素的類型規範。dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3]) dataset.element_spec TensorSpec(shape=(), dtype=tf.int32, name=None)
如需更多信息,請閱讀本指南。
tf.data.Dataset
API 支持編寫說明性和高效的輸入管道。 Dataset
的使用遵循一個常見的模式:
- 從輸入數據創建源數據集。
- 應用數據集轉換來預處理數據。
- 迭代數據集並處理元素。
迭代以流式方式發生,因此整個數據集不需要放入內存中。
源數據集:
創建數據集的最簡單方法是從 python list
創建它:
dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3])
for element in dataset:
print(element)
tf.Tensor(1, shape=(), dtype=int32)
tf.Tensor(2, shape=(), dtype=int32)
tf.Tensor(3, shape=(), dtype=int32)
要處理文件中的行,請使用 tf.data.TextLineDataset
:
dataset = tf.data.TextLineDataset(["file1.txt", "file2.txt"])
要處理以 TFRecord
格式編寫的記錄,請使用 TFRecordDataset
:
dataset = tf.data.TFRecordDataset(["file1.tfrecords", "file2.tfrecords"])
要創建與模式匹配的所有文件的數據集,請使用 tf.data.Dataset.list_files
:
dataset = tf.data.Dataset.list_files("/path/*.txt")
有關創建數據集的更多方法,請參閱tf.data.FixedLengthRecordDataset
和tf.data.Dataset.from_generator
。
轉換:
擁有數據集後,您可以應用轉換為模型準備數據:
dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3])
dataset = dataset.map(lambda x:x*2)
list(dataset.as_numpy_iterator())
[2, 4, 6]
常用術語:
元素:調用的單個輸出next()
在數據集迭代器上。元素可以是包含多個組件的嵌套結構。例如,元素(1, (3, "apple"))
有一個元組嵌套在另一個元組中。組件是1
,3
, 和"apple"
.
組件:元素嵌套結構中的葉子。
支持的類型:
元素可以是元組、命名元組和字典的嵌套結構。請注意,Python 列表不被視為組件的嵌套結構。相反,列表被轉換為張量並被視為組件。例如,元素(1, [1, 2, 3])
隻有兩個組件;張量 1
和張量 [1, 2, 3]
。元素組件可以是 tf.TypeSpec
可以表示的任何類型,包括 tf.Tensor
、 tf.data.Dataset
、 tf.sparse.SparseTensor
、 tf.RaggedTensor
和 tf.TensorArray
。
a = 1 # Integer element
b = 2.0 # Float element
c = (1, 2) # Tuple element with 2 components
d = {"a":(2, 2), "b":3} # Dict element with 3 components
Point = collections.namedtuple("Point", ["x", "y"])
e = Point(1, 2) # Named tuple
f = tf.data.Dataset.range(10) # Dataset element
如需更多信息,請閱讀本指南。
相關用法
- Python tf.data.Dataset.take_while用法及代碼示例
- Python tf.data.Dataset.cardinality用法及代碼示例
- Python tf.data.Dataset.from_tensors用法及代碼示例
- Python tf.data.Dataset.concatenate用法及代碼示例
- Python tf.data.Dataset.unique用法及代碼示例
- Python tf.data.Dataset.cache用法及代碼示例
- Python tf.data.Dataset.unbatch用法及代碼示例
- Python tf.data.Dataset.as_numpy_iterator用法及代碼示例
- Python tf.data.Dataset.random用法及代碼示例
- Python tf.data.Dataset.group_by_window用法及代碼示例
- Python tf.data.Dataset.reduce用法及代碼示例
- Python tf.data.Dataset.map用法及代碼示例
- Python tf.data.Dataset.repeat用法及代碼示例
- Python tf.data.Dataset.bucket_by_sequence_length用法及代碼示例
- Python tf.data.Dataset.get_single_element用法及代碼示例
- Python tf.data.Dataset.flat_map用法及代碼示例
- Python tf.data.Dataset.choose_from_datasets用法及代碼示例
- Python tf.data.Dataset.from_tensor_slices用法及代碼示例
- Python tf.data.Dataset.with_options用法及代碼示例
- Python tf.data.Dataset.take用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.data.Dataset。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。