sess.runs(畳み込みニューラルネットワークに適用)のタイムアウト機能をテストしていますが、タイムアウトがあまり正確ではないようです。Tensorflowの不正確なタイムアウト
たとえば、タイムアウトを800ミリ秒に設定すると、タイムアウト例外がトリガーされるまでに1〜2秒の遅延が発生することがあります。このようなことは、計算ノード間で取り消し通知が捕捉されないと私に信じている。
ので
1)タイムアウトがより正確にする方法はあります(タイムラインに応じて0.2から0.5秒ごとれていますか)?
2)ノードの計算の間にTensorflowキャンセルの通知が取り込まれますか?ファイルから空のキューからdequeuing、完全キューにenqueuing、及びreading:
涼しいですが、少数のブロック操作しかキャンセルできないことがわかります。 – user2454808
キャンセル可能と思われる場所に 'WaitForNotificationWithTimeout'と' WaitForNotification'が散在しています。ノンブロッキング操作に 'WaitForNotificationWithTimeout'を追加すると、それらもキャンセル可能になりますか? 私は変更を試みることができるように、グラフ操作の間で取り消しを無効/有効にするために必要なことを理解しようとしています。私はおそらくそれに対処するgithub機能要求を開くでしょう。 – user2454808
このように解決できるケースがあるかもしれませんが、一般的な問題はそれほど単純ではありません。ノンブロッキング操作は通知を明示的に待つことはほとんどなく、 'run()'コールは、進行中の作業は、返す前に完了しています(ぶら下がっているポインタを避けるため)。暗黙のブロッキングの多くは、Eigen(並列作業が複数のスレッドに分割される)またはGPUデバイス(すべての非同期作業が確実に完了するようにランタイムがGPUストリームと同期する)にあります。これらのそれぞれは修正することが可能ですが、大きな変更が必要な場合があります... – mrry