在 Tensorflow 中追踪

在介绍 Tensorflow 中的签名和追踪时,我阅读了以下声明。

TensorFlow 只会捕获迭代张量或数据集的 for 循环。因此,请确保使用 for i in tf.range(x) 而不是 for i in range(x),否则循环将不会在图中捕获。相反,它将在跟踪期间运行。(如果 for 循环旨在构建图形,例如创建神经网络中的每一层,这可能就是您想要的。)

我对到底发生了什么感到困惑。如果它在跟踪过程中运行,它如何不在图形上注册,以及 for 循环将如何构建图形?


眼眸繁星
浏览 73回答 1
1回答

动漫人物

tf.range显示循环和循环之间区别的示例range:for i in tf.range(3):  x = tf.add(x, i)生成一个图形,其中包含tf.while_loop与循环匹配的a for;这是 AutoGraph 的翻译:def cond(i, x):  return tf.lesss(i, 3)def body(i, x):  x = tf.add(x, i)  return i, xtf.while_loop(cond, body, ...)反过来:for i in range(3):  x = tf.add(x, i)导致包含三个调用的图形tf.add,并由i常量替换,没有任何循环操作:x = tf.add(x, 0)x = tf.add(x, 1)x = tf.add(x, 2)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python