TensorFlow数据类型dtype详解:从基础类型到转换方法

山海之间
山海之间
发布时间:2026-10-15 | 6人浏览过
原创

本文详细解析TensorFlow中的核心数据类型dtype,涵盖有符号/无符号整型、浮点数、字符串及布尔型等常用类型。重点介绍tf.as_dtype()函数的用法,以及如何通过dtype属性查看和astype方法进行数据类型转换,帮助开发者在模型构建中准确管理数据格式。

在TensorFlow框架中,数据类型(dtype)是定义张量属性的基础要素。值得注意的是,在较旧的TensorFlow版本中,部分数据类型可以直接使用而不必显式添加tf前缀,但为了代码的兼容性和规范性,建议始终使用完整的命名空间。

有符号整型

tf.int8表示8位有符号整数,常用于量化模型以节省存储空间。

tf.int16表示16位有符号整数,适用于需要中等精度整数的场景。

tf.int32表示32位有符号整数,是大多数系统中整数的标准类型。

tf.int64表示64位有符号整数,适用于需要极大数值范围的计算任务。

无符号整型

tf.uint8表示8位无符号整数,其取值范围不包含负数,常见于图像像素数据处理。

tf.uint16表示16位无符号整数,同样用于处理非负整型数据。

浮点型

tf.float16表示16位半精度浮点数,广泛用于深度学习训练中以加速计算并减少内存占用。

tf.float32表示32位单精度浮点数,是深度学习中最常用的默认浮点类型。

tf.float64表示64位双精度浮点数,提供更高的数值精度,适用于科学计算等高精度需求场景。

tf.double是tf.float64的别名,两者在功能上完全等同,使用任一均可。

字符串型

tf.string用于存储字符串数据,在自然语言处理任务中处理文本输入时必不可少。

布尔型

tf.bool表示布尔类型,用于存储真值或假值,常用于条件判断和掩码操作。

复数型

tf.complex64表示64位复数,由两个32位浮点数分别表示实部和虚部。

tf.complex128表示128位复数,由两个64位浮点数分别表示实部和虚部,提供更高的复数运算精度。

补充:tensorflow及numpy的数据类型对象Dtype总结

1.dtyte与astype

dtype:查看数据类型,通过访问张量的dtype属性可以获取其当前的数据类型对象。

astype:转换数据类型,使用astype方法可以将现有张量转换为指定的新数据类型,注意这可能会引发数据截断或精度损失。

2.tensorlow数据类型对象Dtype

名称 描述
tf.float16 16位半精度浮点
tf.float32 32位单精度浮点
tf.float64 64位双精度浮点
tf.bfloat16 16位截断浮点
tf.complex64 64位单精度复数
tf.complex128 128位双精度复数
tf.int8 8位有符号整数
tf.uint8 8位无符号整数
tf.uint16 16位无符号整数
tf.int16 16位有符号整数
tf.int32 32位有符号整数
tf.int64 64位有符号整数
tf.bool 布尔值
tf.string 字符串
tf.qint8 量化的8位带符号整数
tf.quint8 量化的8位无符号整数
tf.qint16 量化的16位有符号整数
tf.quint16 量化的16位无符号整数
tf.qint32 量化的32位有符号整数

tf.as_dtype()函数用于将NumPy类型或字符串类型的名称转换为TensorFlow的DType对象,这在动态构建模型或处理外部数据时非常有用。

3.numpy数据类型对象dtype

名称 描述
np.bool_ 布尔型数据类型
np.int_ 默认的整数类型
np.intc 与 C 的 int 类型一样,一般是 int32 或 int 64
np.intp 用于索引的整数类型,一般是 int32 或 int64
np.int8 8位整数即1字节(-128 to 127)
np.int16 16位整数(-32768 to 32767)
np.int32 32位整数(-2147483648 to 2147483647)
np.int64 64位整数(-9223372036854775808 to 9223372036854775807)
np.uint8 8位无符号整数(0 to 255)
np.uint16 16位无符号整数(0 to 65535)
np.uint32 32位无符号整数(0 to 4294967295)
np.uint64 64位无符号整数(0 to 18446744073709551615)
np.float_ float64 简写,即64位双精度浮点数
np.float16 16位半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位
np.float32 32位 单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位
np.float64 64位双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位
np.complex_ complex128 简写,即 128 位复数
np.complex64 复数,表示双 32 位浮点数(实数部分和虚数部分)
np.complex128 复数,表示双 64 位浮点数(实数部分和虚数部分)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表