gpt4 book ai didi

python - 关于 tf.function 的跟踪是什么

转载 作者:行者123 更新时间:2023-12-03 16:20:54 31 4
gpt4 key购买 nike

TensorFlow 的指南中经常提到“跟踪”这个词,例如 Better performance with tf.function

  • 究竟什么是“跟踪”,它是指生成图形作为结果
    第一次调用 tf.function(随后
    取决于论点)?
  • 当只有部分计算被注释时会发生什么@tf.function ,它会将渴望执行与图形执行混合在一起吗?
  • 最佳答案

  • 是的,“跟踪”意味着运行 Python 函数并在图中“记录”其 TensorFlow 操作。请注意,如果 Autograph 执行了一些转换,则跟踪代码可能与编写的 Python 代码不完全对应。跟踪理想情况下只进行一次,第一次调用函数,因此后续调用可以直接使用跟踪图并保存 Python 代码执行。但是,正如您所说, future 的调用可能需要根据给定的参数重新跟踪函数,如您发布的链接中所述。
  • 您可以调用@tf.function来自在急切模式下工作的功能,在这种情况下,是的,它会“混合”两种模式。但是如果你从 @tf.function 调用一个未注释的函数,那么它的代码也将被追踪——也就是说,你不能从 @tf.function 中暂时返回到 Eager/Python 模式。 .这就是为什么在某些时候,有人建议您只需要注释更高级别的函数,因为无论如何,较低级别的函数也会被“绘制” - 尽管它何时应该或何时不是那么明确不应注解函数,见 Should I use @tf.function for all functions?this GitHub discussion .

  • 编辑:当我说“你不能从 @tf.function 中暂时回到 Eager/Python 模式”时,我的意思是 @tf.function无法退出“跟踪”模式。当然,使用 tf.numpy_function tf.py_function 您可以拥有一个使用 Eager/Python 模式的跟踪函数,它将作为跟踪图的一部分封装在一个操作中。

    关于python - 关于 tf.function 的跟踪是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62704906/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com