最近训练数据大增,无法全部加载到内存中,组内决定改用tf.data搭建pipeline。经过测试,tfdata+tfrecord方式效率很高,与数据一次性加载到内存性能差不多。构建过程还是有几个坑的,这里以构造TFRecord的数据流为例,简单整理。
tf.data构建pipeline大致方式
A.创建tfrecord数据
a.原始日志数据解析
b.针对行数据,构建数据模板(Example - Feature)
c.逐行转换,并序列化写入文件
B.训练过程
a.指定tfrecord文件
b.定义解析方法,构建dataset
c.构建迭代器,接入模型,开始训练
基本问题很多文章写得很清楚,不再赘述,可以参考以下资料:
1.Tensorflow(一) TFRecord生成与读取
https://www.jianshu.com/p/b480e5fcb638
2.TensorFlow tf.data 导入数据(tf.data官方教程)
https://blog.csdn.net/u014061630/article/details/80728694
3.TensorFlow 高性能数据输入管道设计指南
https://blog.csdn.net/u014061630/article/details/80776975
4.Tensor