什么时候用@tf.function,以及与tf.py_function的区别

来源:3-7 tf.function函数转换

O_O_似水流年_O_O

2020-03-05

老师我咨询下
我什么时候用@tf.function,我的理解为如果我的函数是python函数,如果我传入的是图数据,那么按理来说需要将该函数添加为@tf.function,但是我看到了一个源码用tf.py_function,不知道有什么区别,什么情况下用 这两个函数,
图片描述
老师请看163行我加了一个@tf.function,然后在第227行我使用这种格式调用,在下面的terminal调试中报了一个错误。
但是我使用git源码上的tf.py_function,然后去掉上面@tf.function然后就可以运行,并且也可以调试。
对于这种情况我还不清楚

写回答

1回答

正十七

2020-03-11

同学你好,下面分别是tf.py_function和tf.function的API链接:

https://www.tensorflow.org/api_docs/python/tf/function

https://www.tensorflow.org/api_docs/python/tf/py_function

其中,tf.py_function是把普通的python代码比如while, for, if等转成tensorflow中的op,它不会把python函数内部的操作转变成图固化下来。但是可以正常调试。

而tf.function会把函数操作的内部完全转化为一个图。但是这样应该会影响调试。

以上,所以使用py_function可以调试,使用function不能调试。

1
0

Google老师亲授 TensorFlow2.0 入门到进阶

Tensorflow2.0实战—以实战促理论的方式学习深度学习

1849 学习 · 896 问题

查看课程