TensorFlow 函数图的深入探索
1. TF 函数与具体函数
TF 函数具有多态性,能支持不同类型和形状的输入。例如下面的 tf_cube() 函数:
import tensorflow as tf
@tf.function
def tf_cube(x):
return x ** 3
每次以新的输入类型或形状组合调用 TF 函数时,它会生成一个新的具体函数,该函数有专门针对此组合的优化函数图(FuncGraph)和函数定义(FunctionDef)。这种参数类型和形状的组合称为输入签名。若使用之前出现过的输入签名调用 TF 函数,它会复用之前生成的具体函数。
以下是不同输入签名调用 tf_cube() 函数的示例:
| 输入签名 | 是否生成新具体函数 |
| — | — |
| tf_cube(tf.constant(3.0)) | 否,复用 tf_cube(tf.constant(2.0)) 的具体函数 |
| tf_cube(tf.constant([2.0])) | 是 |
| tf_cube(tf.constant([[1.0, 2.0], [3.0, 4.0]])) | 是 |
可以通过调用 TF 函数的 get_concrete_function() 方法获取特定输入组合的具体
超级会员免费看
订阅专栏 解锁全文
1079

被折叠的 条评论
为什么被折叠?



