Casts a tensor to a new type.
tfp.experimental.distributions.marginal_fns.ps.cast(
x, dtype, name=None
)
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.
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 .
|