我使用 TensorFlow python 创建了一个模型。现在我已经用 C++ 加载了模型并使用 session->Run (提供输入张量)运行它。代码已编译并链接良好,但是一旦在运行时到达 session ->运行,它就不会进一步继续,也不会创建任何错误消息!看起来它会永远运行!我还检查了CPU使用率,但它也没有表明任何密集计算!
最佳答案
当 TensorFlow 程序永远阻塞时,一个常见问题是该步骤被阻塞在 q.dequeue()
中的空队列上。或q.dequeue_many()
操作。
一种可能性是您的 Python 模型依赖于预取线程(源自 tf.train.QueueRunner
对象)。许多输入读取(例如使用 tf.TFRecordReader
)和批处理(例如使用 tf.train.batch()
)管道隐式创建队列和队列运行器。
如果你必须运行 tf.train.start_queue_runners()
在您的 Python 程序中,那么您需要在 C++ 代码中执行相同的操作,通过 fork 线程来运行适当的 q.enqueue()
操作。或者,您可以在 C++ 程序中准备输入并提供图形,以便您尝试运行的操作不依赖于队列的出列元素。
关于c++ - TensorFlow C++,运行时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35346117/