tf.get_static_value
Возвращает постоянное значение данного тензора, если его можно эффективно вычислить.
tf.get_static_value(
tensor, partial=False
)
Используется в ноутбуках
| Используется в учебниках |
|---|
Эта функция пытается частично оценить заданный тензор и возвращает его значение в виде массива numpy, если это удается.
Пример использования:
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
Использование опции partial наиболее актуально при вызове get_static_value внутри tf.function. Установка её в значение True вернёт результаты, но для значений, которые нельзя вычислить, будет None. Например:
class Foo:
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. Это позволяет результату этой функции влиять на конструируемый граф и позволяет оптимизировать статические формы.
| Аргументы | |
|---|---|
tensor | Тензор, подлежащий оценке. |
partial | Если True, возвращаемый массив numpy допускает частично вычисленные значения. Значения, которые невозможно вычислить, будут None. |
| Возвращает | |
|---|---|
Массив numpy, содержащий постоянное значение заданного tensor, или None, если его нельзя вычислить. |
| Исключения | |
|---|---|
TypeError | если тензор не является tensor.Tensor. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/get_static_value