参考文章:
TensorFlow全新的数据读取方式:Dataset API入门教程
TensorFlow 利用Dataset读取和构建数据
【Tensorflow】Dataset 中的 Iterator
一、基本概念
1.DataSet
简单来说,Dataset可以看作是相同类型“元素”的有序列表,其中,单个“元素”可以是向量,也可以是字符串、图片,甚至是tuple或者dict。Dataset具有三个重要的子类TextLineDataset、TFRecordDataset、FixedLengthRecordDataset
2.Iterator
Iterator可以看作一个对应的数据集迭代器实例,用于实现从Dataset中取出数据。
常见的Iterator主要有oneshot Iterator、initializable iterator、reinitializable iterator
feedable iterator
3…Eager模式与非Eager模式
Eager模式,主要是从动态图的角度考虑,为了更加灵活的使用。
具体可以参考:Eager Execution
二、Dataset创建
1.Dataset简单创建方法
#range():
dataset = tf.data.Dataset.range(5)
#from_tensor_slices():
dataset = tf.data.Dataset.from_tensor_slices(np.array([1.0, 2.0, 3.0, 4.0, 5.0]))
from_tensor_slices真正作用是切分传入Tensor的第一个维度,生成相应的dataset,例如:
dataset = tf.data.Dataset.from_tensor_slices(np.random.uniform(size=(5, 2)))
传入的数值是一个矩阵,它的形状为(5, 2),tf.data.Dataset.from_tensor_slices就会切分它形状上的第一个维度,最后生成的dataset中一个含有5个元素,每个元素的形状是(2, ),即