当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.get_static_value用法及代码示例


如果可有效计算,则返回给定张量的常量值。

用法

tf.get_static_value(
    tensor, partial=False
)

参数

  • tensor 要评估的张量。
  • partial 如果为 True,则返回的 numpy 数组允许具有部分评估值。无法评估的值将是无。

返回

  • 一个 numpy ndarray,包含给定 tensor 的常量值,如果无法计算,则为 None。

抛出

  • TypeError 如果张量不是 ops.Tensor。

此函数尝试对给定的张量进行部分评估,如果成功,则将其值作为 numpy ndarray 返回。

示例用法:

a = tf.constant(10)
tf.get_static_value(a)
10
b = tf.constant(20)
tf.get_static_value(tf.add(a, b))
30
# `tf.Variable` is not supported.
c = tf.Variable(30)
print(tf.get_static_value(c))
None

tf.function 中调用 get_static_value 时,使用 partial 选项最为相关。将其设置为 True 将返回结果,但对于无法评估的值将是 None 。例如:

class Foo(object):
  def __init__(self):
    self.a = tf.Variable(1)
    self.b = tf.constant(2)

  @tf.function
  def bar(self, partial):
    packed = tf.raw_ops.Pack(values=[self.a, self.b])
    static_val = tf.get_static_value(packed, partial=partial)
    tf.print(static_val)

f = Foo()
f.bar(partial=True)  # `array([None, array(2, dtype=int32)], dtype=object)`
f.bar(partial=False)  # `None`

兼容性(V1):如果 constant_value(tensor) 返回非 None 结果,则无法再为 tensor 提供不同的值。这允许此函数的结果影响构建的图形,并允许静态形状优化。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.get_static_value。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。