核心要点

  • 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 维搞错。

追问

追问 1Tensor 不可变如何「更新」权重?

权重是 tf.Variable,用 assign、optimizer.apply_gradients 更新;普通 Tensor 每次运算产生新 Tensor,符合函数式语义。

追问 2ragged tensor 是什么?

变长序列不用 padding 浪费的计算类型,每行长度可不同,适合 NLP 变长文本;tf.RaggedTensor。

追问 3Eager Tensor 和 Graph Tensor?

TF 2 默认 EagerTensor 有 numpy() 值;图模式中 Tensor 是符号句柄,须 Session/run 求值。2.x 以 Eager 为主。

🔗 相似问题

同一考点的不同问法,换着练更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习