使用场景
在处理waymo数据时遇到问题:
tensorflow.python.framework.errors_impl.DataLossError: truncated record at 10157833’ failed with Read less bytes than requested
原因是数据传输过程中有损坏,可使用MD5校验文件完整性。
单个文件
单个文件可以在直接使用轻量级工具WinMD5Free
软件检查MD5值是否匹配。
多个文件
文件数量较多时可以使用linux终端命令
md5sum *.tfrecord* > after_md5.txt
查看所有传输后文件的MD5值,同时查看文件传输之前的MD5值
md5sum *.tfrecord* > before_md5.txt
获得两份MD5值之后写个简短的程序进行对比:
before_list = []
with open('./before_md5.txt', 'r') as f1:
before = f1.readlines()
for line in before:
before_list.append(line.strip().split())
after_list = []
with open('./after_md5.txt', 'r') as f2:
after = f2.readlines()
for line in after:
after_list.append(line.strip().split())
for i in before_list:
for j in after_list:
if i[1]==j[1]:
if i[0]!=j[0]:
print(i[1])
continue
程序会输出不能完成匹配(传输过程中有损坏)的文件名。