13.tf.data使用实例

目录

1  导入库

2  加载数据集

3  归一化

4  创建数据集

4.1  创建训练图片数据集

4.2  创建训练标签数据集

4.3  把这两个数据集合并到一起

5  处理训练集

5.1  乱序

5.2  重复

5.3  设置批次

6  创建测试集

7  建立模型

8  编译模型

9  训练模型


1  导入库

2  加载数据集

我们这次换为mnist数据集,这个数据集是手写数字的数据集

3  归一化

我们此时看一下train_iamge的shape

4  创建数据集


4.1  创建训练图片数据集

我们看一下我们的图片数据集

4.2  创建训练标签数据集

我们同样看一下

4.3  把这两个数据集合并到一起

我们想把这两个数据合并成元组的形式,所以要额外加一个括号

看一下合并后的数据集

5  处理训练集


5.1  乱序

乱序个数我们现在设置为10000,这个数是随便选的,我们一共有60000张图片,全部乱序会影响速度,乱序太少会没有效果

5.2  重复

我们令其无限次重复

5.3  设置批次

我们将其设置为一批64个

6  创建测试集

测试集后面给validation_data用的,能更加准确的获取acc与loss

我们在创建的时候这样写就行

看一下这个测试集

我们没有必要对test数据集进行乱序,因为测试集仅在前向转播时使用,不会对其余参数造成影响,由于测试集不用随机,那么测试集也就不用重复,训练集重复的意义是每一次重复都是随机顺序的数据,我们唯一就是需要将测试集的batch调整至与训练集相同的batch值

  • 如果内存够大batch也不用改,对于mnist这个数据量小的数据集来讲batch是不需要添加的

7  建立模型

8  编译模型

sparse_categorical_crossentropy我们从上面的shape可以看出来,train_label是由单一的数组成的,所以此处的loss使用sparse_categorical_crossentropy


9  训练模型

因为我们上面定义了batch,所以我们在这里要使用steps_per_epochs(每个epochs的步数),如果我们不加入这个就会导致我们只训练64个数据,如果加上了这个就会第一批训练64个,然后第二批再训练64个

由于ds_test默认为无限循环,所以我们要加入validation_steps这个参数,这个参数的值是测试集个数 // batch

  • train_image.shape[0]是训练图片的总个数,在这里是60000,test_image.shape[0]是测试图片的个数,这里是10000
  • 步数这里注意一定要是整数,不然会报错

后面我们可以用这个模型进行评估与预测,我们就不在这赘述了

  • 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、付费专栏及课程。

余额充值