【发布时间】:2018-11-09 04:04:59
【问题描述】:
TensorFlow 对象检测 API 更喜欢 TFRecord 文件格式。 MXNet 和 Amazon Sagemaker 似乎使用 RecordIO 格式。这两种二进制文件格式有何不同,或者它们是同一回事?
【问题讨论】:
TensorFlow 对象检测 API 更喜欢 TFRecord 文件格式。 MXNet 和 Amazon Sagemaker 似乎使用 RecordIO 格式。这两种二进制文件格式有何不同,或者它们是同一回事?
【问题讨论】:
RecordIO 和 TFRecord 是相同的,因为它们服务于相同的目的 - 将数据放在一个序列中以便更快地读取,并且它们都使用底层协议缓冲区来更好地分配空间。
在我看来,RecordIO 更像是一个总称:一种用于将大量数据存储在一个文件中以便更快读取的格式。一些产品采用“RecordIO”作为实际术语,但在 Tensorflow 中,他们决定使用一个特定的词来表示 - TFRecord。这就是为什么有人将 TFRecord 称为“TensorFlow 风格的 RecordIO 格式”。
目前没有单一的 RecordIO 格式。来自 Apache Mesos 的人们也将他们的格式称为 RecordIO,say:“由于没有正式的 RecordIO 格式规范,RecordIO 实现之间往往存在轻微的不兼容性”。而且它们的 RecordIO 格式与 MXNet 使用的不同——我没有在每条记录的开头看到“幻数”。
因此,在结构级别上,TFRecord of Tensorflow 和 RecordIO of MXNet 是不同的文件格式,例如您不希望 MXNet 能够读取 TFRecord,反之亦然。但在逻辑层面上 - 它们具有相同的目的并且可以被认为是相似的。
【讨论】: