LoginSignup
0
1

More than 3 years have passed since last update.

tf.train.start_queue_runners()で0xC0000005エラーが発生した場合の対処法

Posted at

tensorflowで非同期処理しようとしたらエラーでハマった。
対処法を探したが見つからなかったので誰かの参考になればと思います。

現象

以下のコードを実行するとtf.train.start_queue_runners()でエラーが発生する

filename_queue = tf.train.string_input_producer(["../dataset/sample1.tfrecord"])
reader = tf.TextLineReader()

// ... 

with tf.Session() as sess:
    # 入力 enqueue スレッド開始
    coord = tf.train.Coordinator()
    threads = tf.train.start_queue_runners(sess=sess, coord=coord)

[実行結果]

Process finished with exit code -1073741819 (0xC0000005)

原因

ファイルパスの参照先が間違っていた。

()filename_queue = tf.train.string_input_producer(["../dataset/sample1.tfrecord"])

()filename_queue = tf.train.string_input_producer(["../dataset/samples/sample1.tfrecord"])

凡ミスだが地味にハマった。
tf.train.string_input_producer()でエラーが出てくれればいいのに…。

0xC0000005がそもそもメモリアクセス違反系のエラーなのでファイルなどの参照周りをまず怪しむべき。

(参考)Tensorflowで非同期処理

以下の記事がわかりやすい。
https://qiita.com/antimon2/items/c7d2285d34728557e81d
https://qiita.com/ashigirl966/items/99b0f8d9713ee90db13a

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1