从简单的、可重用的部分构建复杂的输入管道。
例如,图像模型的管道可以聚合分布式文件系统中文件中的数据,对每个图像应用随机扰动,并将随机选择的图像合并成一批进行训练。文本模型的管道可能包括从原始文本数据中提取符号,将它们转换为嵌入查找表的标识符,以及将不同长度的序列批处理在一起。
tf.data API使处理大量数据、不同的数据格式和复杂的转换变得容易。
tf.data.Dataset表示一个元素序列,其中每个元素包含一个或多个张量对象。例如,在图像管道中,元素可能是单个训练示例,其中有一对张量表示图像数据和一个标签。创建数据集有两种不同的方法:
创建一个源(例如data et.from_tensor_slice())从一个或多个tf.Tensor 构造一个数据集。
应用转换(例如data et.batch())从一个或多个tf.data.Dataset构造一个数据集
tf.data.Iterator 提供了从数据集中提取元素的主要方法。
Iterator.get_next()返回的操作在执行时生成数据集的下一个元素,通常充当输入管道代码和模型之间的接口。最简单的迭代器是“一次性迭代器”,它与特定的数据集关联并迭代一次。对于更复杂的用途,迭代器。初始化器操作使您能够使用不同的数据集重新初始化和参数化迭代器,例如,您可以在同一个程序中多次迭代训练和验证数据。
原文地址:http://blog.51cto.com/13959448/2333034
时间: 2024-10-21 22:21:53