表示一组可能很大的元素。
用法
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。