12.tf.data模块基本操作

目录

1  创建数据集

1.1  一维数据

1.2  二维数据

1.3  字典建立dataset

1.4  np.array建立dataset

2  数据集变化

2.1  乱序数据集 shuffle()

2.2  循环数据集 repeat()

2.2.1  无限循环

2.2.2  有限循环

2.3  设置批次 batch()

2.4  数值处理map()


tf.data这个是处理数据用的

首先我们导入库

1  创建数据集


1.1  一维数据

我们现在使用from_tensor_slices把[1,2,3,4,5,6,7]这个列表作为数据集

然后我们显示出来看一下

我们可以发现这个没有办法直接显示出来,其中的shapes是代表每一个元素的shape,由于我们每一个元素是数字,所以shape是()

这个对象是可以遍历的,我们遍历一下

我们发现每一个对象都是tf,Tensor类型的

我们可以将其转换为numpy类型

1.2  二维数据

我们现在再将一个二维的列表作为数据集,这个时候我们就不能加7了,因为tf.data.Dataset要求每一个元素的形状与属性相同

如果是下面这样的话会报错

我们看一下dataset

由于我现在的元素长度为2,所以现在的shaps显示为(2,),如果里面都有三个元素,那么shapes就为(3,)

然后再遍历dataset

1.3  字典建立dataset

每个元素的形状要相同,不然会报错

我们看一下刚刚创建的数据集

我们看一下它的shapes,shapes是一个字典,括号的意思是字典的值只有单一数字

我们遍历一遍dataset_dic

dataset_dic中一共有四个元素,每一个大括号算一个元素,每一个尖括号中的numpy是该键所对应的值

1.4  np.array建立dataset

效果与直接使用列表相同

首先导入numpy

看一下dataset整体

遍历

我们可以使用take的方法取出前指定个数的数据,比如我现在想取出前4个数据

2  数据集变化


2.1  乱序数据集 shuffle()

将数据集乱序后在训练过程中,数据集中的数据顺序对结果的影响会大大降低

我们使用shuffle()进行乱序,参数是我们要乱序的个数,我们现在想将其所有内容都乱序

此时dataset的类型变为了ShuffleDataset

遍历结果

2.2  循环数据集 repeat()


2.2.1  无限循环

现在我们的数据集类型变为RepearDataset

我们的效果是先乱序,后循环

由于我们使用for循环没有设置终止条件,所以它会无限的循环下去,也就是说dataset此时是无限长的数据集,我通过pycharm的暂停使它停止

2.2.2  有限循环

在repeat()中输入循环次数就可以达到有限循环的效果,我们现在想让其循环3次,也就是说我们现在dataset的长度是21

  • 只截取了一头一尾


2.3  设置批次 batch()

当我们的数据集中的数据较多时,我们的内存无法将所有数据集中的数据一次都传进来,这个时候我们要定义批次

我们使用batch()定义批次,现在我们让3个数据在一个批次中

由于只循环了三次所以到这里就停止了

2.4  数值处理map()

我们可以对数据集中的数据进行同一的处理,比如说我下面对数据集中的所有数据进行平方运算

map()中的参数为要进行的算法,在tf中内置了,需要什么算法可以用的时候去网上查一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值