# tf.TensorSpec

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.7.4/tensorflow/python/framework/tensor_spec.py#L117-L231) |

Describes a tf.Tensor.

Inherits From: [`TypeSpec`](https://www.tensorflow.org/versions/r2.7/api_docs/python/tf/TypeSpec)

#### View aliases


**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

[`tf.compat.v1.TensorSpec`](https://www.tensorflow.org/api_docs/python/tf/TensorSpec)

<br />

    tf.TensorSpec(
        shape,
        dtype=https://www.tensorflow.org/versions/r2.7/api_docs/python/tf/dtypes#float32,
        name=None
    )

Metadata for describing the [`tf.Tensor`](https://www.tensorflow.org/versions/r2.7/api_docs/python/tf/Tensor) objects accepted or returned
by some TensorFlow APIs.

<br />

<br />

<br />

| ## Args ||
|---|---|
| `shape` | Value convertible to [`tf.TensorShape`](https://www.tensorflow.org/versions/r2.7/api_docs/python/tf/TensorShape). The shape of the tensor. |
| `dtype` | Value convertible to [`tf.DType`](https://www.tensorflow.org/versions/r2.7/api_docs/python/tf/dtypes/DType). The type of the tensor values. |
| `name` | Optional name for the Tensor. |

<br />

<br />

<br />

<br />

| ## Raises ||
|---|---|
| `TypeError` | If shape is not convertible to a [`tf.TensorShape`](https://www.tensorflow.org/versions/r2.7/api_docs/python/tf/TensorShape), or dtype is not convertible to a [`tf.DType`](https://www.tensorflow.org/versions/r2.7/api_docs/python/tf/dtypes/DType). |

<br />

<br />

<br />

<br />

| ## Attributes ||
|---|---|
| `dtype` | Returns the `dtype` of elements in the tensor. |
| `name` | Returns the (optionally provided) name of the described tensor. |
| `shape` | Returns the `TensorShape` that represents the shape of the tensor. |
| `value_type` | The Python type for values that are compatible with this TypeSpec. |

<br />

## Methods

### `from_spec`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.7.4/tensorflow/python/framework/tensor_spec.py#L142-L154)

    @classmethod
    from_spec(
        spec, name=None
    )

Returns a `TensorSpec` with the same shape and dtype as `spec`.

    spec = tf.TensorSpec(shape=[8, 3], dtype=tf.int32, name="OriginalName")
    tf.TensorSpec.from_spec(spec, "NewName")
    TensorSpec(shape=(8, 3), dtype=tf.int32, name='NewName')

<br />

<br />

<br />

| Args ||
|---|---|
| `spec` | The `TypeSpec` used to create the new `TensorSpec`. |
| `name` | The name for the new `TensorSpec`. Defaults to `spec.name`. |

<br />

### `from_tensor`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.7.4/tensorflow/python/framework/tensor_spec.py#L156-L176)

    @classmethod
    from_tensor(
        tensor, name=None
    )

Returns a `TensorSpec` that describes `tensor`.

    tf.TensorSpec.from_tensor(tf.constant([1, 2, 3]))
    TensorSpec(shape=(3,), dtype=tf.int32, name=None)

<br />

<br />

<br />

| Args ||
|---|---|
| `tensor` | The [`tf.Tensor`](https://www.tensorflow.org/versions/r2.7/api_docs/python/tf/Tensor) that should be described. |
| `name` | A name for the `TensorSpec`. Defaults to `tensor.op.name`. |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| A `TensorSpec` that describes `tensor`. ||

<br />

### `is_compatible_with`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.7.4/tensorflow/python/framework/tensor_spec.py#L128-L140)

    is_compatible_with(
        spec_or_tensor
    )

Returns True if spec_or_tensor is compatible with this TensorSpec.

Two tensors are considered compatible if they have the same dtype
and their shapes are compatible (see [`tf.TensorShape.is_compatible_with`](https://www.tensorflow.org/versions/r2.7/api_docs/python/tf/TensorShape#is_compatible_with)).

<br />

<br />

<br />

| Args ||
|---|---|
| `spec_or_tensor` | A tf.TensorSpec or a tf.Tensor |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| True if spec_or_tensor is compatible with self. ||

<br />

### `most_specific_compatible_type`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.7.4/tensorflow/python/framework/tensor_spec.py#L96-L102)

    most_specific_compatible_type(
        other
    )

Returns the most specific TypeSpec compatible with `self` and `other`.

<br />

<br />

<br />

| Args ||
|---|---|
| `other` | A `TypeSpec`. |

<br />

<br />

<br />

<br />

| Raises ||
|---|---|
| `ValueError` | If there is no TypeSpec that is compatible with both `self` and `other`. |

<br />

### `__eq__`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.7.4/tensorflow/python/framework/tensor_spec.py#L86-L91)

    __eq__(
        other
    )

Return self==value.

### `__ne__`

[View source](https://github.com/tensorflow/tensorflow/blob/v2.7.4/tensorflow/python/framework/tensor_spec.py#L93-L94)

    __ne__(
        other
    )

Return self!=value.