核心要点
熟悉 float32、int64、bool 等常用 dtype
知道 tf.string、tf.complex 存在
理解 dtype 与算子、损失匹配
能 cast 转换类型
简要回答
TensorFlow 支持 float16/32/64、int8/16/32/64、uint8、bool、string、complex64/128 等 dtype;深度学习训练多用 float32,标签常用 int64。
标准回答
TensorFlow 张量支持丰富 dtype:
| 类型 | 用途 |
|---|---|
| float32 | 默认训练精度 |
| float16 / bfloat16 | 混合精度加速 |
| float64 | 高精度数值(较少) |
| int32 / int64 | 索引、标签(int64 常用) |
| uint8 | 图像原始像素 |
| bool | 掩码、条件 |
| string | 文本 token(tf.data) |
| complex64/128 | 信号处理 |
注意:
- 算子对 dtype 有要求,混用会隐式提升或报错
- tf.cast(x, tf.float32) 显式转换
- Keras 默认 float32;混合精度 tf.keras.mixed_precision 用 float16 算、float32 累加
- 标签 sparse_categorical_crossentropy 期望 int64 类别索引
与 NumPy dtype 大致对应,互转时注意 tf.constant(np_arr) 保留 dtype。详见 TensorFlow 文档。
回答思路
【定义】用一句话说清「TensorFlow 支持哪些数据类型」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
延伸学习
工具:TensorFlow。知识库:深度学习基础、深度学习训练技巧。
追问
追问 1:混合精度如何配置?
tf.keras.mixed_precision.set_global_policy("mixed_float16");输出层常保持 float32 防下溢;配合 LossScale 防梯度 underflow。
落地时需结合业务场景说明取舍、边界条件与可观测指标,避免只背概念。
追问 2:int32 和 int64 标签用哪个?
TensorFlow 稀疏标签推荐 int64,与 GPU kernel 默认一致;int32 部分 op 需显式 cast。
落地时需结合业务场景说明取舍、边界条件与可观测指标,避免只背概念。
追问 3:string 张量能参与数学运算吗?
不能直接与 float 运算;用于 tf.data 文本管道,经 lookup/hash 转为数值嵌入后再进模型。
🔗 相似问题
同一考点的不同问法,换着练更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习
