TFRecord
这篇文章基于一个生成tfrecord和解析tfrecord的代码,对TFRecord进行了详细的解析。
一. 什么是TFRecord?
Tensorflow的文档中说:
“… approach is to convert whatever data you have into a supported format. This approach makes it easier to mix and match data sets and network architectures. The recommended format for TensorFlow is a TFRecords file containing tf.train.Example protocol buffers (which contain Features as a field).”
Tensorflow的TFRecord文件格式,是一种二进制存储格式。
如果您正在处理大型数据集,则使用二进制文件格式存储数据在磁盘上占用的空间更少,复制时间更短,并且可以从磁盘更有效地读取。
特别是对于太大而无法完全存储在存储器中的数据集,TFRecord可以进行例如批处理,只有当时所需的数据从磁盘加载然后被处理。
TFRecords的另一个主要优点是可以存储序列数据 - 例如,时间序列或字编码。
二. 构建TFRecords
TFRecord文件将您的数据存储为二进制字符串序列。 这意味着您需要在将数据写入文件之前指定数据的结构。Tensorflow为此提供了两个组件:tf.train.Example和tf.train.SequenceExample。 您必须将每个数据样本存储在其中一个结构中,然后对其进行序列化并使用tf.python_io.TFRecordWriter将其写入磁