将 TF 1.x 函数 fn 包装成图形函数。
用法
tf.compat.v1.wrap_function(
fn, signature, name=None
)
参数
-
fn
要包装的python函数 -
signature
要传递给包装函数的占位符和 python 参数 -
name
可选的。函数的名称。
返回
- 包装图函数。
python 函数 fn
将使用 signature
中指定的符号参数调用一次,跟踪并转换为图形函数。 fn
创建的任何变量都将归 wrap_function
返回的对象所有。可以使用与签名匹配的张量调用生成的图函数。
def f(x, do_add):
v = tf.Variable(5.0)
if do_add:
op = v.assign_add(x)
else:
op = v.assign_sub(x)
with tf.control_dependencies([op]):
return v.read_value()
f_add = tf.compat.v1.wrap_function(f, [tf.TensorSpec((), tf.float32), True])
assert float(f_add(1.0)) == 6.0
assert float(f_add(1.0)) == 7.0
# Can call tf.compat.v1.wrap_function again to get a new trace, a new set
# of variables, and possibly different non-template arguments.
f_sub= tf.compat.v1.wrap_function(f, [tf.TensorSpec((), tf.float32), False])
assert float(f_sub(1.0)) == 4.0
assert float(f_sub(1.0)) == 3.0
tf.compat.v1.wrap_function
和 tf.function
都创建了一个可调用的 TensorFlow 图。但是,虽然 tf.function
运行所有有状态操作(例如 tf.print
)和序列操作以提供与即刻执行相同的语义,但 wrap_function
更接近于 TensorFlow 1.x 中 session.run
的行为。它不会运行任何操作,除非它们需要通过数据依赖或控制依赖来计算函数的输出。它也不会对操作进行排序。
与 tf.function
不同,wrap_function
只会跟踪 Python 函数一次。与 TF 1.x 中的占位符一样,形状和数据类型必须提供给 wrap_function
的 signature
参数。
由于它只被跟踪一次,因此变量和状态可以在函数内部创建并由函数包装对象拥有。
相关用法
- Python tf.compat.v1.while_loop用法及代码示例
- Python tf.compat.v1.where用法及代码示例
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代码示例
- Python tf.compat.v1.distribute.MirroredStrategy.experimental_distribute_dataset用法及代码示例
- Python tf.compat.v1.data.TFRecordDataset.interleave用法及代码示例
- Python tf.compat.v1.distributions.Bernoulli.cross_entropy用法及代码示例
- Python tf.compat.v1.Variable.eval用法及代码示例
- Python tf.compat.v1.train.FtrlOptimizer.compute_gradients用法及代码示例
- Python tf.compat.v1.layers.conv3d用法及代码示例
- Python tf.compat.v1.strings.length用法及代码示例
- Python tf.compat.v1.data.Dataset.snapshot用法及代码示例
- Python tf.compat.v1.data.experimental.SqlDataset.reduce用法及代码示例
- Python tf.compat.v1.feature_column.categorical_column_with_vocabulary_file用法及代码示例
- Python tf.compat.v1.data.TextLineDataset.from_tensors用法及代码示例
- Python tf.compat.v1.variable_scope用法及代码示例
- Python tf.compat.v1.data.experimental.SqlDataset.as_numpy_iterator用法及代码示例
- Python tf.compat.v1.distributions.Bernoulli.covariance用法及代码示例
- Python tf.compat.v1.placeholder用法及代码示例
- Python tf.compat.v1.layers.Conv3D用法及代码示例
- Python tf.compat.v1.train.get_or_create_global_step用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.compat.v1.wrap_function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。