DataSet与Iterator用法总结

本文总结了TensorFlow中的Dataset和Iterator的使用,包括Dataset的TextLineDataset、TFRecordDataset等子类,以及Iterator的oneshot、initializable、reinitializable和feedable类型。在非Eager模式下,讲解了如何创建和操作Dataset,以及各种Iterator的特性和应用场景。

参考文章:
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, ),即

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值