从编程的角度来看,渴望执行到底是什么?



我试图理解渴望的执行。谷歌返回的页面描述了它为你做了什么,我对此没意见。我试图从程序代码的角度来理解它。以下是本文中的一个示例。

a = tf.constant([[1,2],[3,4]])

文章说,这个声明根据你是否处于渴望模式而有所不同。如果没有急切模式,print(a( 会给出:

Tensor("Const:0", shape=(2, 2), dtype=int32)

在渴望模式下,print(a( 提供:

tf.Tensor(
[[1 2]
[3 4]], shape=(2, 2), dtype=int32)

请有人解释一下这两个返回值是什么。如果它们是两种不同的对象类型,则张量和 tf。张量,这些对象之间有什么区别?

我已经搜索了TensorFlow文档,看不到任何解决这种区别的内容。任何指针都感激地收到。

谢谢

朱利安

延迟执行会尽可能延迟评估。在 TensorFlow 的上下文中,它将在做任何事情之前创建一个执行计划(图形(,然后当一切准备就绪时,它将输入输入到图形中并计算所有内容以返回输出。tf.constant在图形中创建一个执行节点,该节点将在执行开始时接收常量值。你可以将惰性评估比作鲁布·戈德堡(Rube Goldberg(机器:你建造了整个东西,然后把一颗弹珠扔进去,看着魔术的展开。

预先执行会立即进行评估。在TensorFlow的上下文中,它不会创建图形。tf.constant当时和那里创建一个具有特定值的常量。如果与Rube Goldberg机器相比,您可以想象建造机器的第一部分,将弹珠放入,然后在弹珠退出时停止它,然后再建造机器的下一部分,并以相同的位置和速度重新引入弹珠。:P

TensorFlow 在惰性求值模式下效率更高,但 eager 模式更容易开发和调试。

最新更新