核心要点
TF 张量是不可变多维数组
理解 rank、shape、dtype
知道 Variable 可变用于训练
能创建 constant、zeros、convert
简要回答
TensorFlow 张量是不可变的多维数组,是计算图中的基本数据单元,具有 shape、dtype 和 device 属性;训练参数用 tf.Variable 表示可变张量。
标准回答
一、先把结论讲清楚
在 TensorFlow 中,Tensor 是不可变的多维数组,是计算的基本单元(类似 NumPy ndarray + 元数据)。
二、属性
- rank(阶):维度数,标量 rank=0,向量 rank=1
- shape:各维大小,如 (batch, 28, 28, 3)
- dtype:float32、int64 等
- device:/CPU:0、/GPU:0
三、创建
示例代码可以这样理解:
tf.constant([[1, 2], [3, 4]])
tf.zeros([2, 3])
tf.random.normal([batch, dim])
tf.convert_to_tensor(numpy_arr)
面试里不要只停在公式或名词,可以补 TensorFlow 中的张量是什么 对训练稳定性、泛化、收敛速度或显存/算力的影响。再说明一个常见调参或排错场景,面试官会更容易判断你真的用过这些方法。
四、Tensor vs Variable
| Tensor | Variable | |
|---|---|---|
| 可变性 | 不可变 | 可变(训练权重) |
| 用途 | 数据、中间结果 | 模型参数 |
| Eager 模式下运算立即求值;@tf.function 中张量在图中流动。与 PyTorch 张量概念对应,API 命名略有不同。 |
回答思路
【定义】用一句话说清「TensorFlow 中的张量」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
延伸学习
工具:TensorFlow。知识库:深度学习基础。术语:神经网络。
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:试图 inplace 改 constant;混淆 Tensor 与 Variable;shape 与 batch 维搞错。
追问
追问 1:Tensor 不可变如何「更新」权重?
权重是 tf.Variable,用 assign、optimizer.apply_gradients 更新;普通 Tensor 每次运算产生新 Tensor,符合函数式语义。
追问 2:ragged tensor 是什么?
变长序列不用 padding 浪费的计算类型,每行长度可不同,适合 NLP 变长文本;tf.RaggedTensor。
追问 3:Eager Tensor 和 Graph Tensor?
TF 2 默认 EagerTensor 有 numpy() 值;图模式中 Tensor 是符号句柄,须 Session/run 求值。2.x 以 Eager 为主。
🔗 相似问题
同一考点的不同问法,换着练更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习
