1、tf.bitcast
在不复制数据的情况下将tensor从一种数据类型转换为另一种类型。
tf.bitcast
(
input,
type,
name=None
)
参数说明:
input - 配置需要进行类型转换的Tensor,Tensor的类型可以为:bfloat16, half, float32, float64, int64, int32, uint8, uint16, uint32, uint64, int8, int16, complex64, complex128, qint8, quint8, qint16, quint16, qint32.
type - 配置转换后的数据类型,可以选择的类型包括:tf.bfloat16, tf.half, tf.float32, tf.float64, tf.int64, tf.int32, tf.uint8, tf.uint16, tf.uint32, tf.uint64, tf.int8, tf.int16, tf.complex64, tf.complex128, tf.qint8, tf.quint8, tf.qint16, tf.quint16, tf.qint32.
name:配置运算操作的名称。
示例代码:
import tensorflow as tf
a = tf.constant([32., 25.])
b = tf.bitcast(a, type = tf.int32)
print(a.dtype, b.dtype)
<dtype: 'float32'> <dtype: 'int32'>
2、数据类型转换tf.cast()函数
tf.cast()函数的作用是执行 tensorflow 中张量数据类型转换,比如读入的图片如果是int8类型的,一般在要在训练前把图像的数据格式转换为float32。
用法:
tf.cast(
x,
dtype,
name=None
)
参数说明:
- x:待转换的数据(张量)
- dtype:目标数据类型
- name:可选参数,定义操作的名称
示例:float转换为bool:
import tensorflow as tf
a = tf.Variable([1,0,0,1,1])
b = tf.cast(a,dtype=tf.bool)
b
Out[87]: <tf.Tensor: shape=(5,), dtype=bool, numpy=array([ True, False, False, True, True])>