TensorFlow 的指南中经常提到“跟踪”这个词,例如 Better performance with tf.function
第一次调用 tf.function(随后
取决于论点)?
@tf.function
,它会将渴望执行与图形执行混合在一起吗? 最佳答案
@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/