tensorflow2读取数据P4: tf.data.TFRecordDataset创建Dataset

为啥要用tfrecord

使用tfrecord是为了更高效地读取数据,这种方式比较适合数据量大且数据集相对稳定的情况。tfrecord将数据存储成了二进制记录序列的格式,这格式比较对计算机的胃口,读取更高效一些。
如果只是训练一点点数据,没必要存成tfrecord,因为这样带来的效率提升不够显著。
如果数据集里面的样本和标签时常有变动,也不太适合用tfrecord格式。因为数据集中样本和标签经常变动,可能是因为对任务的目标定位不够明确、数据集不够干净。这些数据存储成图片格式,方便进行查看和必要的改动。但存储成tfrecord格式,人工查看就不是很方便了。若是数据集较为干净、且任务定义明确,只是数据量在不断增长,还是比较适合存储成tfrecord的。

怎么制作tfrecord呢?

感觉有些复杂,为啥呢?因为制作tfrecord,数据大部分要经过2步转换。如下图所示,想存入tfrecord的数据,不管是数值、字符串还是图片,都得先变成正规军tf.train.Feature格式的数据。然后多个由关键字(string类型)和对应tf.train.Feature组成的字典生成tf.Example, 然后再序列化成二进制字符串,存储到文件中,大功告成。
真是太复杂了,为啥不能只输入一个路径,然后tensorflow自己分析里面有啥,然后存到tfrecord呢?(白日做梦)
现在就来实现以下这个过程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

象象家的小蜜桃

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

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

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

打赏作者

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

抵扣说明:

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

余额充值