如何修复 tensorflow 截断的 tfrecords?

rea*_*ead 6 tensorflow

我创建了一个大的 .tfrecords 文件,但没有看到任何错误。但是,在训练期间,当 TfRecordReader 到达 .tfrecord 文件末尾附近的某个位置时,我看到了错误“在 XXXX 截断了记录”。如何快速检查 .tfrecord 文件是否真的损坏?如果是这样,我该如何快速修复文件(可以丢弃最后几个键值对)?

小智 4

该消息的含义正如其所言 --- TFRecord 文件似乎在记录的中途意外结束。

如果您想了解幕后情况,文件格式非常简单,记录如下: https: //www.tensorflow.org/versions/r0.11/api_docs/python/python_io.html#tfrecords-format -细节

要快速检查的一件事是:您正在读取的文件真的是 TFRecord 文件吗?确定总是好的。

对于 TFRecord 文件“损坏程度如何”,很难给出一个好的答案——读取器代码所能做的就是告诉您内部存在不一致的情况。

(您的写入过程是否正确终止并在完成后关闭文件?)

如果您想修复该文件,最好的选择可能是重新生成它。

或者,您可以使用上面链接中记录的读取器函数读取文件内容,并将其写入新的 TFRecord 文件。您将丢失损坏的记录,但您应该能够复制其他所有内容。