當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。