我给人的印象是张量流图是有向无环图。但是,在探究https://github.com/nilboy/tensorflow-yolo生成的(相当大的)图形时,我偶然发现了该图形中的一个循环:

 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创建这些循环,以及在会话中运行时此类循环的语义是什么?

最佳答案

它们由tf.while_loop创建,语义遵循经典的Data Flow原语用于分布式while循环,“ TensorFlow:用于大规模机器学习的系统”(link)的第3.4节有一些参考

09-25 19:25