什么时候用@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不能调试。
10
相似问题