mxnet - TFRecord 与 RecordIO
问题描述
TensorFlow Object Detection API 更喜欢 TFRecord 文件格式。MXNet 和 Amazon Sagemaker 似乎使用 RecordIO 格式。这两种二进制文件格式有何不同,或者它们是一回事?
解决方案
RecordIO 和 TFRecord 是相同的,因为它们服务于相同的目的 - 将数据放在一个序列中以便更快地读取,并且它们都使用引擎盖下的协议缓冲区来更好地分配空间。
在我看来,RecordIO 更像是一个总称:一种用于将大量数据存储在一个文件中以便更快读取的格式。一些产品采用“RecordIO”作为实际术语,但在 Tensorflow 中他们决定使用一个特定的词 - TFRecord。这就是为什么有人将 TFRecord 称为“TensorFlow 风格的 RecordIO 格式”。
没有单一的 RecordIO 格式。来自 Apache Mesos 的人也称他们的格式为 RecordIO,他们说:“由于没有正式的 RecordIO 格式规范,RecordIO 实现之间往往存在轻微的不兼容性”。而且它们的 RecordIO 格式与 MXNet 使用的格式不同——我没有在每条记录的开头看到“幻数”。
因此,在结构层面上,Tensorflow 的 TFRecord和MXNet 的 RecordIO是不同的文件格式,例如,您不希望 MXNet 能够读取 TFRecord,反之亦然。但在逻辑层面上 - 它们具有相同的目的并且可以被认为是相似的。
推荐阅读
- javascript - 有没有办法在 Vue 中验证多个道具?
- encryption - 第一轮AES的输出是什么
- python - 如何为数据集选择最佳拟合函数
- python - 如何在pyspark中创建一个包含两个数据框列的字典?
- java - 什么可能导致 Android 上的 DatagramChannel connect() 调用中出现间歇性“权限被拒绝”错误?
- node.js - 承诺在测试开始前解决
- java - HttpSecurity permitAll 和 WebSecurity 忽略 un-Auth URL 的功能?
- angular - 链可观察
- arrays - 不允许通过字符串文字访问 Angular httpClient 对象
- datatables - 如何在数据表中获取最大值?