TensorFlow入门9 -- 导入数据之Dataset结构

参考:《深度学习图像识别技术--基于TensorFlow Object Detection API 和 OpenVINO》

数据集(Dataset)由具有相同结构的元素(element)构成。每个元素包含一个或多个被称为组件(Component)的tf.Tensor对象。

每个组件都有一个tf.DType属性表示元素的类型,一个tf.TensorShape属性表示元素的静态形状。

Dataset.output_types 和Dataset.output_shapes属性允许您检查数据集元素的组件的推断(static (inferred))类型和形状。


创建了一个二维数组array, 3 x 1,通过tf.data.Dataset.from_tensor_slices切片传入第一个维度,形成具有3个元素,每个元素形状是(1,)的数据集。“切片(slice)”可以理解为,内存里面有一块数据,类似于一整个方包,切片后,形成数据集,类似于一盘切片面包,如下图所示。面包切片后方便食用,内存中整块数据切片后,变成数据集,方便TensorFlow处理


在实际使用中,我们可能还希望Dataset中的每个元素具有更复杂的形式,如每个元素是一个Python中的元组,或是Python中的词典。例如,在图像识别问题中,一个元素可以是{“image”: image_tensor, “label”: label_tensor}的形式,这样处理起来更方便。

tf.data.Dataset.from_tensor_slices同样支持创建这种dataset,例如我们可以让每一个元素是一个词典,如下所示:

可以看到,tf.data.Dataset.from_tensor_slices 把一个形状为(3,10)的数据,“切片”为具有3个元素,每个元素的形状为(10,)的数据集,这样就方便迭代或使用了。

你可能感兴趣的:(TensorFlow入门9 -- 导入数据之Dataset结构)