39、利用 TensorFlow 高效加载和预处理数据

利用 TensorFlow 高效加载和预处理数据

1. 链式转换数据集

一旦拥有数据集,就可以通过调用其转换方法对其应用各种转换。每个方法都会返回一个新的数据集,因此可以像这样链式调用转换方法:

dataset = dataset.repeat(3).batch(7)
for item in dataset:
    print(item)

上述代码先调用 repeat(3) 方法,返回一个将原数据集重复三次的新数据集,且不会在内存中复制三次所有数据。若不传入参数调用 repeat() 方法,新数据集将无限重复源数据集,此时迭代数据集的代码需自行决定何时停止。接着调用 batch(7) 方法,创建一个将前一个数据集的项按每七个一组进行分组的新数据集。运行结果如下:

tf.Tensor([0 1 2 3 4 5 6], shape=(7,), dtype=int32)
tf.Tensor([7 8 9 0 1 2 3], shape=(7,), dtype=int32)
tf.Tensor([4 5 6 7 8 9 0], shape=(7,), dtype=int32)
tf.Tensor([1 2 3 4 5 6 7], shape=(7,), dtype=int32)
tf.Tensor([8 9], shape=(2,), dtype=int32)

可以看到, batch() 方法输出了一个大小为 2 而非

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值