tf.get_static_value
Stay organized with collections
Save and categorize content based on your preferences.
Returns the constant value of the given tensor, if efficiently calculable.
tf.get_static_value(
tensor, partial=False
)
Used in the notebooks
This function attempts to partially evaluate the given tensor, and
returns its value as a numpy ndarray if this succeeds.
Example usage:
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
Using partial
option is most relevant when calling get_static_value
inside
a tf.function
. Setting it to True
will return the results but for the
values that cannot be evaluated will be None
. For example:
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`
Compatibility(V1): If constant_value(tensor)
returns a non-None
result, it
will no longer be possible to feed a different value for tensor
. This allows
the result of this function to influence the graph that is constructed, and
permits static shape optimizations.
Args |
tensor
|
The Tensor to be evaluated.
|
partial
|
If True, the returned numpy array is allowed to have partially
evaluated values. Values that can't be evaluated will be None.
|
Returns |
A numpy ndarray containing the constant value of the given tensor ,
or None if it cannot be calculated.
|
Raises |
TypeError
|
if tensor is not an tensor.Tensor.
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2024-04-26 UTC.
[null,null,["Last updated 2024-04-26 UTC."],[],[],null,["# tf.get_static_value\n\n\u003cbr /\u003e\n\n|-------------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.16.1/tensorflow/python/framework/tensor_util.py#L896-L971) |\n\nReturns the constant value of the given tensor, if efficiently calculable.\n\n#### View aliases\n\n\n**Compat aliases for migration**\n\nSee\n[Migration guide](https://www.tensorflow.org/guide/migrate) for\nmore details.\n\n[`tf.compat.v1.get_static_value`](https://www.tensorflow.org/api_docs/python/tf/get_static_value)\n\n\u003cbr /\u003e\n\n tf.get_static_value(\n tensor, partial=False\n )\n\n### Used in the notebooks\n\n| Used in the tutorials |\n|--------------------------------------------------------------------------------------------------------------------------------|\n| - [Bayesian Modeling with Joint Distribution](https://www.tensorflow.org/probability/examples/Modeling_with_JointDistribution) |\n\nThis function attempts to partially evaluate the given tensor, and\nreturns its value as a numpy ndarray if this succeeds.\n\n#### Example usage:\n\n a = tf.constant(10)\n tf.get_static_value(a)\n 10\n b = tf.constant(20)\n tf.get_static_value(tf.add(a, b))\n 30\n\n # `tf.Variable` is not supported.\n c = tf.Variable(30)\n print(tf.get_static_value(c))\n None\n\nUsing `partial` option is most relevant when calling `get_static_value` inside\na [`tf.function`](../tf/function). Setting it to `True` will return the results but for the\nvalues that cannot be evaluated will be `None`. For example: \n\n class Foo:\n def __init__(self):\n self.a = tf.Variable(1)\n self.b = tf.constant(2)\n\n @tf.function\n def bar(self, partial):\n packed = tf.raw_ops.Pack(values=[self.a, self.b])\n static_val = tf.get_static_value(packed, partial=partial)\n tf.print(static_val)\n\n f = Foo()\n f.bar(partial=True) # `array([None, array(2, dtype=int32)], dtype=object)`\n f.bar(partial=False) # `None`\n\nCompatibility(V1): If `constant_value(tensor)` returns a non-`None` result, it\nwill no longer be possible to feed a different value for `tensor`. This allows\nthe result of this function to influence the graph that is constructed, and\npermits static shape optimizations.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|-----------|-------------------------------------------------------------------------------------------------------------------------------|\n| `tensor` | The Tensor to be evaluated. |\n| `partial` | If True, the returned numpy array is allowed to have partially evaluated values. Values that can't be evaluated will be None. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| A numpy ndarray containing the constant value of the given `tensor`, or None if it cannot be calculated. ||\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Raises ------ ||\n|-------------|------------------------------------|\n| `TypeError` | if tensor is not an tensor.Tensor. |\n\n\u003cbr /\u003e"]]