
372
|
第
13
章
如果你对 CSV 文件(或使用的任何其他格式)感到满意,就不必使用 TFRecords。
俗话说,如果没有破裂,就不要修理!当训练过程中的瓶颈是加载和解析数
据时,TFRecords 很有用。
13.2 TFRecord 格式
TFRecord 格式是 TensorFlow 首选的格式,用于存储大量数据并有效读取数据。这是一
种非常简单的二进制格式,只包含大小不同的二进制记录序列(每个记录由一个长度、
一个用于检查长度是否损坏的 CRC 校验和、实际数据以及最后一个 CRC 校验和组成)。
你可以使用 tf.io.TFRecordWriter 类轻松创建 TFRecord 文件:
with
tf.io.TFRecordWriter("my_data.tfrecord")
as
f:
f.write(b"This is the first record")
f.write(b"And this is the second record")
然后你可以使用 tf.data.TFRecordDataset 读取一个或多个 TFRecord 文件:
filepaths = ["my_data.tfrecord"]
dataset = tf.data.TFRecordDataset(filepaths)
for
item in dataset:
print
(item)
这将输出:
tf.Tensor(b'This is the first record', shape=(), dtype=string) ...