2016-02-11 91 views
2

我已經使用TensorFlow python創建了一個模型。現在我已經用C++加載模型並使用session-> Run(饋送輸入張量)運行它。代碼編譯和鏈接良好,但只要它在運行時到達會話 - >運行時,它就不會繼續進行,並且也不會產生任何錯誤消息!它看起來像它永遠運行!我也檢查了CPU的使用情況,但它並沒有顯示任何密集計算!TensorFlow C++,運行時問題

+1

請閱讀有關最小示例的發佈準則。你的問題,因爲它是站外話題在這裏。 –

回答

2

當TensorFlow程序永遠阻塞時,一個常見問題是該步驟在q.dequeue()q.dequeue_many()操作的空隊列中被阻塞。

一種可能性是您的Python模型依賴於預取線程(從tf.train.QueueRunner對象派生)。許多輸入讀數(例如使用tf.TFRecordReader)和批處理(例如使用tf.train.batch())管道隱式地創建隊列和隊列跑步者。

如果您必須在您的Python程序中運行tf.train.start_queue_runners(),那麼您需要在C++代碼中執行相同的操作,方法是分叉運行適當的q.enqueue()操作。或者,您可以在C++程序中準備輸入並提供圖表,以便嘗試運行的操作不依賴於爲隊列出隊元素。