tf.cast
Stay organized with collections
Save and categorize content based on your preferences.
Casts a tensor to a new type.
tf.cast(
x, dtype, name=None
)
Used in the notebooks
Used in the guide |
Used in the tutorials |
|
|
The operation casts x
(in case of Tensor
) or x.values
(in case of SparseTensor
or IndexedSlices
) to dtype
.
For example:
x = tf.constant([1.8, 2.2], dtype=tf.float32)
tf.cast(x, tf.int32)
<tf.Tensor: shape=(2,), dtype=int32, numpy=array([1, 2], dtype=int32)>
Notice tf.cast
has an alias tf.dtypes.cast
:
x = tf.constant([1.8, 2.2], dtype=tf.float32)
tf.dtypes.cast(x, tf.int32)
<tf.Tensor: shape=(2,), dtype=int32, numpy=array([1, 2], dtype=int32)>
The operation supports data types (for x
and dtype
) of
uint8
, uint16
, uint32
, uint64
, int8
, int16
, int32
, int64
,
float16
, float32
, float64
, complex64
, complex128
, bfloat16
.
In case of casting from complex types (complex64
, complex128
) to real
types, only the real part of x
is returned. In case of casting from real
types to complex types (complex64
, complex128
), the imaginary part of the
returned value is set to 0
. The handling of complex types here matches the
behavior of numpy.
Note casting nan and inf values to integral types has undefined behavior.
Note this operation can lead to a loss of precision when converting native
Python float
and complex
variables to tf.float64
or tf.complex128
tensors, since the input is first converted to the float32
data type and
then widened. It is recommended to use tf.convert_to_tensor
instead of
tf.cast
for any non-tensor inputs.
Args |
x
|
A Tensor or SparseTensor or IndexedSlices of numeric type. It could
be uint8 , uint16 , uint32 , uint64 , int8 , int16 , int32 ,
int64 , float16 , float32 , float64 , complex64 , complex128 ,
bfloat16 .
|
dtype
|
The destination type. The list of supported dtypes is the same as
x .
|
name
|
A name for the operation (optional).
|
Returns |
A Tensor or SparseTensor or IndexedSlices with same shape as x and
same type as dtype .
|
Raises |
TypeError
|
If x cannot be cast to the dtype .
|
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.cast\n\n\u003cbr /\u003e\n\n|-----------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.16.1/tensorflow/python/ops/math_ops.py#L938-L1020) |\n\nCasts a tensor to a new type.\n\n#### View aliases\n\n\n**Main aliases**\n\n[`tf.dtypes.cast`](https://www.tensorflow.org/api_docs/python/tf/cast)\n**Compat aliases for migration**\n\nSee\n[Migration guide](https://www.tensorflow.org/guide/migrate) for\nmore details.\n\n[`tf.compat.v1.cast`](https://www.tensorflow.org/api_docs/python/tf/cast), [`tf.compat.v1.dtypes.cast`](https://www.tensorflow.org/api_docs/python/tf/cast)\n\n\u003cbr /\u003e\n\n tf.cast(\n x, dtype, name=None\n )\n\n### Used in the notebooks\n\n| Used in the guide | Used in the tutorials |\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| - [Multilayer perceptrons for digit recognition with Core APIs](https://www.tensorflow.org/guide/core/mlp_core) - [Logistic regression for binary classification with Core APIs](https://www.tensorflow.org/guide/core/logistic_regression_core) - [tf.data: Build TensorFlow input pipelines](https://www.tensorflow.org/guide/data) - [Distributed training with Core APIs and DTensor](https://www.tensorflow.org/guide/core/distribution) - [Import a JAX model using JAX2TF](https://www.tensorflow.org/guide/jax2tf) | - [Scalable model compression](https://www.tensorflow.org/tutorials/optimization/compression) - [DeepDream](https://www.tensorflow.org/tutorials/generative/deepdream) - [Parameter server training with ParameterServerStrategy](https://www.tensorflow.org/tutorials/distribute/parameter_server_training) - [Learned data compression](https://www.tensorflow.org/tutorials/generative/data_compression) - [Neural style transfer](https://www.tensorflow.org/tutorials/generative/style_transfer) |\n\nThe operation casts `x` (in case of `Tensor`) or `x.values`\n(in case of `SparseTensor` or `IndexedSlices`) to `dtype`.\n\n#### For example:\n\n x = tf.constant([1.8, 2.2], dtype=tf.float32)\n tf.cast(x, tf.int32)\n \u003ctf.Tensor: shape=(2,), dtype=int32, numpy=array([1, 2], dtype=int32)\u003e\n\nNotice [`tf.cast`](../tf/cast) has an alias [`tf.dtypes.cast`](../tf/cast): \n\n x = tf.constant([1.8, 2.2], dtype=tf.float32)\n tf.dtypes.cast(x, tf.int32)\n \u003ctf.Tensor: shape=(2,), dtype=int32, numpy=array([1, 2], dtype=int32)\u003e\n\nThe operation supports data types (for `x` and `dtype`) of\n`uint8`, `uint16`, `uint32`, `uint64`, `int8`, `int16`, `int32`, `int64`,\n`float16`, `float32`, `float64`, `complex64`, `complex128`, `bfloat16`.\nIn case of casting from complex types (`complex64`, `complex128`) to real\ntypes, only the real part of `x` is returned. In case of casting from real\ntypes to complex types (`complex64`, `complex128`), the imaginary part of the\nreturned value is set to `0`. The handling of complex types here matches the\nbehavior of numpy.\n\nNote casting nan and inf values to integral types has undefined behavior.\n\nNote this operation can lead to a loss of precision when converting native\nPython `float` and `complex` variables to [`tf.float64`](../tf#float64) or [`tf.complex128`](../tf#complex128)\ntensors, since the input is first converted to the `float32` data type and\nthen widened. It is recommended to use [`tf.convert_to_tensor`](../tf/convert_to_tensor) instead of\n[`tf.cast`](../tf/cast) for any non-tensor inputs.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `x` | A `Tensor` or `SparseTensor` or `IndexedSlices` of numeric type. It could be `uint8`, `uint16`, `uint32`, `uint64`, `int8`, `int16`, `int32`, `int64`, `float16`, `float32`, `float64`, `complex64`, `complex128`, `bfloat16`. |\n| `dtype` | The destination type. The list of supported dtypes is the same as `x`. |\n| `name` | A name for the operation (optional). |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| A `Tensor` or `SparseTensor` or `IndexedSlices` with same shape as `x` and same type as `dtype`. ||\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Raises ------ ||\n|-------------|---------------------------------------|\n| `TypeError` | If `x` cannot be cast to the `dtype`. |\n\n\u003cbr /\u003e"]]