2016-10-22 13 views
0

エラーを表示せずに大きな.tfrecordsファイルを作成しました。しかし、トレーニング中に、TfRecordReaderが.tfrecordファイルの終わり付近に達したときにエラー "XXXXで切り捨てられたレコード"が見えました。 .tfrecordファイルが本当に破損しているかどうかを素早く確認する方法はありますか?もしそうなら、ファイルをすばやく修正するにはどうすればいいですか(最後のいくつかのキーと値のペアを破棄しても問題ありません)。テンソルフローのために切り捨てられたtfrecordsを修正するには?

答えて

0

メッセージは、TFRecordファイルが予期せず途中でレコードを終了するように見えることを意味します。

あなたはボンネットの下に何が起こっているか理解したい場合は、ファイル形式は非常に簡単であり、ここで文書化されている:チェックするhttps://www.tensorflow.org/versions/r0.11/api_docs/python/python_io.html#tfrecords-format-details

一つの迅速な事は:あなたが本当にTFRecordファイルを読んでいるファイルのですか?確かにそれはいつも良いことだ。

TFRecordファイルが「どのように破損しているか」という良い答えを出すのは難しいです---すべての読者コードは内部的に矛盾していることを教えてくれます。

(あなたの書き込み処理が正常に終了し、それが行われたときに、ファイルを閉じていましたか?)

ファイルを修正したい場合は、おそらくあなたの最善の策は、それを再生成することです。

また、上記のリンクに記載されている読み取り機能を使用してファイルの内容を読み込み、新しいTFRecordファイルに書き出すこともできます。壊れたレコードは失われますが、他のものはすべてコピーできます。

0

私はいくつかの壊れた画像を、部分的にダウンロードした画像は正確でなければなりませんでしたが、私は使用してそれらをキャッチすることができませんでした: imghdr.What()Image.open().verify()またはcv2.imread方法を。唯一の解決策が働い

はこれです:イメージが破損している場合 Image.open(path/to/image).tobytes()

このコードはエラー例外IOErrorをスローします。

誰かに役立つことを願って

関連する問題