|TensorFlow 1 version||View source on GitHub|
A tensor is a multidimensional array of elements represented by a
Compat aliases for migration
See Migration guide for more details.
tf.Tensor( op, value_index, dtype )
tf.Tensor object. All elements are of a single known data type.
When writing a TensorFlow program, the main object that is
manipulated and passed around is the
tf.Tensor has the following properties:
- a single data type (float32, int32, or string, for example)
- a shape
TensorFlow supports eager execution and graph execution. In eager execution, operations are evaluated immediately. In graph execution, a computational graph is constructed for later evaluation.
TensorFlow defaults to eager execution. In the example below, the matrix multiplication results are calculated immediately.
# Compute some values using a Tensor
c = tf.constant([[1.0, 2.0], [3.0, 4.0]])
d = tf.constant([[1.0, 1.0], [0.0, 1.0]])
e = tf.matmul(c, d)
[3. 7.]], shape=(2, 2), dtype=float32)
Note that during eager execution, you may discover your
Tensors are actually
EagerTensor. This is an internal detail, but it does give you
access to a useful function,
tf.functions are a common way to define graph execution.
A Tensor's shape (that is, the rank of the Tensor and the size of
each dimension) may not always be fully known. In
definitions, the shape may only be partially known.
Most operations produce tensors of fully-known shapes if the shapes of their inputs are also fully known, but in some cases it's only possible to find the shape of a tensor at execution time.
For more on Tensors, see the guide.
If the op is not an
||The name of the device on which this tensor will be produced, or None.|
||The string name of this tensor.|
The index of this tensor in the outputs of its
Returns a list of
Operations that consume this tensor.
A list of
eval( feed_dict=None, session=None )
Evaluates this tensor in a
Calling this method will execute all preceding operations that produce the inputs needed for the operation that produces this tensor.
A dictionary that maps
|A numpy array corresponding to the value of this tensor.|
tf.TensorShape that represents the shape of this tensor.
In eager execution the shape is always fully-known.
a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
inputs = tf.keras.Input(shape = )
# Unknown batch size
The shape is computed using shape inference functions that are
registered for each
tf.TensorShape is determined at build time, without
executing the underlying kernel. It is not a
tf.Tensor. If you need a
shape tensor, either convert the
tf.TensorShape to a
tf.shape(tensor) function, which returns the tensor's shape at
def my_matmul(a, b):
result = a@b
# the `print` executes during tracing.
print("Result shape: ", result.shape)
The shape inference functions propagate shapes to the extent possible:
f = my_matmul.get_concrete_function(
Result shape: (None, 5)
Tracing may fail if a shape missmatch can be detected:
cf = my_matmul.get_concrete_function(
Traceback (most recent call last):
ValueError: Dimensions must be equal, but are 3 and 4 for 'matmul' (op:
'MatMul') with input shapes: [?,3], [4,5].
In some cases, the inferred shape may have unknown dimensions. If
the caller has additional information about the values of these
Tensor.set_shape() can be used to augment the