尽管有什么渴望和什么不是什么的细微差别,但两者之间的差异却在我的脑海中迷惑了。据我所知,@tf.function
装饰器在此方面有两个好处
if
转换为tf.cond
等。从
tf.py_function
的定义来看,它似乎只是上面的#2。因此,当tf.py_function
可以提高启动性能并且没有前者无法序列化时,为什么还要对tf.function
感到困扰呢?
最佳答案
随着它们的改进,它们确实确实开始彼此相似,因此查看它们的来源很有用。最初的区别是:
@tf.function
将python代码转换为一系列TensorFlow图节点。 tf.py_function
将现有的python函数包装到单个图节点中。 这意味着
tf.function
要求您的代码相对简单,而tf.py_function
可以处理任何python代码,无论多么复杂。尽管这一行确实很模糊,但
tf.py_function
进行了更多的解释,并且tf.function
接受了很多复杂的python命令,但一般规则保持不变:tf.function
。 tf.py_function
。 关于tensorflow - tf.py_function和tf.function在目的上有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61564748/