Multithreading 张量流队列未关闭。tf.train.start\u queue\u跑步者(SES)出现问题
在运行测试CNN时,当尝试使用Multithreading 张量流队列未关闭。tf.train.start\u queue\u跑步者(SES)出现问题,multithreading,tensorflow,queue,batching,Multithreading,Tensorflow,Queue,Batching,在运行测试CNN时,当尝试使用sess.close()关闭会话或请求toe coordinator停止并收集线程时,我总是会遇到此错误。显然,会话正在试图关闭,而线程仍在运行。我就是找不到办法阻止这种事情发生。或者如果有更好/正确的方法在tensor flow中使用队列和线程 提前谢谢 总有一堆: 2017-10-24 15:48:02.625448: W C:\tf_jenkins\home\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\co
sess.close()
关闭会话或请求toe coordinator停止并收集线程时,我总是会遇到此错误。显然,会话正在试图关闭,而线程仍在运行。我就是找不到办法阻止这种事情发生。或者如果有更好/正确的方法在tensor flow中使用队列和线程
提前谢谢
总有一堆:
2017-10-24 15:48:02.625448: W C:\tf_jenkins\home\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\kernels\queue_base.cc:295] _20_input_p
roducer/input_producer: Skipping cancelled enqueue attempt with queue not closed
其次是:
ERROR:tensorflow:Exception in QueueRunner: Enqueue operation was cancelled
[[Node: batch/fifo_queue_enqueue = QueueEnqueueV2[Tcomponents=[DT_FLOAT, DT_FLOAT], timeout_ms=-1, _device="/job:localhost/replica:0
/task:0/cpu:0"](batch/fifo_queue, Squeeze_1/_13, input_producer_1/Gather_1/_15)]]
Traceback (most recent call last):
File "<stdin>", line 30, in <module>
ERROR:tensorflow:Exception in QueueRunner: Enqueue operation was cancelled
[[Node: batch_1/fifo_queue_enqueue = QueueEnqueueV2[Tcomponents=[DT_FLOAT, DT_FLOAT], timeout_ms=-1, _device="/job:localhost/replica
:0/task:0/cpu:0"](batch_1/fifo_queue, Squeeze/_37, input_producer/Gather_1/_39)]]
ERROR:tensorflow:Exception in QueueRunner: Enqueue operation was cancelled
[[Node: batch_1/fifo_queue_enqueue = QueueEnqueueV2[Tcomponents=[DT_FLOAT, DT_FLOAT], timeout_ms=-1, _device="/job:localhost/replica
:0/task:0/cpu:0"](batch_1/fifo_queue, Squeeze/_37, input_producer/Gather_1/_39)]]
Exception in thread Thread-53:
Traceback (most recent call last):
File "C:\Program Files\Anaconda3\lib\threading.py", line 916, in _bootstrap_inner
self.run()
File "C:\Program Files\Anaconda3\lib\threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\training\queue_runner_impl.py", line 238, in _run
enqueue_callable()
File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\client\session.py", line 1235, in _single_operation_run
target_list_as_strings, status, None)
File "C:\Program Files\Anaconda3\lib\contextlib.py", line 89, in __exit__
next(self.gen)
File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 466, in raise_exception_on_not_ok_stat
us
对不起,我太笨了!哈哈 发现一个大错误,问题是我正在创建协调器,但没有在队列运行器中调用它。就是这样,
# Start the data queue
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess)
应该是这样的:
# Start the data queue
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess, coord)
现在代码正在停止线程并在最后收集它 对不起,我太笨了!哈哈 发现一个大错误,问题是我正在创建协调器,但没有在队列运行器中调用它。就是这样,
# Start the data queue
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess)
应该是这样的:
# Start the data queue
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess, coord)
现在代码正在停止线程并在最后收集它