tf.py_function
是否仅适用于Eager模式,而不适用于Graph模式?
根据tf.py_function的说法,它给人的印象是tf.py_function
将在Eager模式下使用。
将python函数 Package 到TensorFlow op中,以便立即执行。
此函数允许将TensorFlow图中的计算表示为Python函数。特别是,它将Python函数func Package 在一次可微的TensorFlow操作中,该操作在启用即时执行的情况下执行函数。
您还可以使用tf.py_function在运行时使用Python工具调试您的模型,也就是说,您可以隔离您想要调试的代码部分,将它们 Package 在Python函数中,并根据需要插入pdb跟踪点或print语句,然后将这些函数 Package 在tf.py_function中。
调用tf.py_function将获得Python全局解释器锁(GIL),它只允许一个线程在任何时间点运行,这将妨碍程序执行的有效并行化和分布。
我相信pdb可以与Python解释器一起工作,GIL位于其中,但在Graph模式下执行TensorFlow Graph时,没有Python解释器执行Python代码。因此,我相信它只适用于Eager模式。请确认这是否正确。
1条答案
按热度按时间gz5pxeao1#
tf.py_function
跟踪到一个tf.Graph节点,tf.Graph执行使用Python解释器急切地运行它,因此,当TenforFlow在Graph模式下执行时,它也可以急切地执行一个节点。