0
テンソルフローグラフが有向非循環グラフであるという印象を受けました。 https://github.com/nilboy/tensorflow-yoloによって生成された(かなり大きい)のグラフを探索しながらしかし、私は、グラフのループにつまずい:テンソルフローのグラフループ
OPSは、これらのループは(のpythonから)作成されるか、上記のようなループをサポートし、どのようなものは何1. gradients/b_count_62:0 -> gradients/b_count_62
2. gradients/b_count_62 -> gradients/GreaterEqual_15:0
3. gradients/GreaterEqual_15:0 -> gradients/GreaterEqual_15
4. gradients/GreaterEqual_15 -> gradients/Merge_31:0, gradients/GreaterEqual_15/Enter:0
5. gradients/Merge_31:0 -> gradients/Merge_31
6. gradients/Merge_31 -> gradients/b_count_61:0, gradients/NextIteration_31:0
7. gradients/NextIteration_31:0 -> gradients/NextIteration_31
8. gradients/NextIteration_31 -> gradients/Sub_15:0
9. gradients/Sub_15:0 -> gradients/Sub_15
10. gradients/Sub_15 -> gradients/Switch_31:1, gradients/GreaterEqual_15/Enter:0
11. gradients/Switch_31:1 -> gradients/Switch_31
12. gradients/Switch_31 -> gradients/Merge_31:0, gradients/b_count_62:0 (loop, references line 5 and line 1)
そのようなループのセマンティクスはセッションで実行されるとき?ループしながら、分散のために
を持っています具体的には十分ではありません - 私はこれらのオペレーションをPythonから直接/別々に作成したいと思います。これは、主に文書化されていないようだが、次の方法でサポートされている: op._add_input(テンソル、DTYPE =なし) op._update_input(インデックス、テンソル、DTYPE =なし) op._add_control_input(OPS) 私が試しましたtf.while_loopのソースコードを読むのは難しいですが、それはむしろ複雑で、グラフに依存関係ループを生成するためにこれらの(または何か)をどのように使用するのかは分かりません。 –
これらは「隠された」オペレーションであり、意図的に文書化されていません(文書化されていないものはAPIの一部ではなく、いつでも変更/削除できます)。 tf.while_loopが非推奨になっているようです。つまり、この[コミット](https://github.com/tensorflow/tensorflow/commit/0fd2a74120b86972441378f79fb5d03e86fed856)を参照してください。 'NextIteration'オペレーションはおそらく残っていますが、それらを構築するためにはより低いレベルのAPIが必要になります。 –
PS、いくつかのグラフの一部の遅延実行を実装するために、マージ/スイッチノードを直接構築する簡単な例 - https://gist.github.com/yaroslavvb/d67410e240369736fc4ba0267250ef27 –