核心要点

  • 张量是多维数组,含 data、dtype、device、requires_grad

  • 理解标量/向量/矩阵是高维张量特例

  • 知道与 NumPy 的互操作

  • 能说明 GPU 张量与 Autograd 关系

简要回答

PyTorch 张量是多维数组的核心数据结构,承载数据、设备、梯度信息;支持 GPU 加速与 Autograd 自动微分,是构建神经网络的基本单元。

标准回答

一、先给出结论和背景

  • PyTorch 张量(Tensor):是框架的核心数据结构——广义上的多维数组,标量(0 维)、向量(1 维)、矩阵(2 维)都是其特例。
  • 关键属性:| 属性 | 含义 |
    |------|------|
    | .shape / .size() | 各维大小 |
    | .dtype | float32、int64 等 |
    | .device | cpu / cuda:0 |
    | requires_grad | 是否参与 Autograd |
    | .grad | 反向后的梯度 |

二、拆开关键步骤和判断点

  • 创建torch.tensor()torch.zeros()torch.randn();从 NumPy:torch.from_numpy(arr)(共享内存)。
  • 运算:重载 +@* 等,底层可 dispatch 到 CPU/GPU;广播机制与 NumPy 类似。

三、补上落地边界和取舍

  • 与神经网络nn.Parameter 是特殊 Tensor;前向中张量在计算图上流动;loss.backward() 沿图回传梯度。
    张量设计使 深度学习 代码简洁且高效。详见 深度学习基础

面试里不要只停在公式或名词,可以补 PyTorch 中的张量Tensor是什么 对训练稳定性、泛化、收敛速度或显存/算力的影响。再说明一个常见调参或排错场景,面试官会更容易判断你真的用过这些方法。

回答思路

  • 【定义】用一句话说清「PyTorch 中的张量(Tensor)」

  • 【原理】讲清关键机制或步骤(2~3 点)

  • 【例子】举一个真实项目、论文或产品中的例子

  • 【对比】与易混淆概念或替代方案比较(如有)

  • 【收尾】总结适用场景 + 一个局限或风险

延伸学习

工具:PyTorch。知识库:深度学习基础。术语:神经网络

常见误区

⚠️ 常见踩坑

误区一:容易答偏的地方:混淆 Tensor 与 Variable(0.4 后已合并);GPU 张量直接 .numpy() 报错需先 .cpu();inplace 操作破坏 Autograd 需小心。

追问

追问 1torch.tensor 和 torch.from_numpy 区别?

from_numpy 与 NumPy 共享内存,改其一影响另一;tensor() 会拷贝。from_numpy 得到的张量默认 requires_grad=False,需手动设置参与训练。

追问 2view 和 reshape 有何注意?

reshape 必要时拷贝;view 要求内存连续,否则先 contiguous()。展平常用 x.view(x.size(0), -1)。

追问 3dtype 选 float32 还是 float64?

深度学习默认 float32,GPU 友好;float64 更精但慢且占显存。推理可用 float16/bfloat16 混合精度加速。

🔗 相似问题

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

延伸学习

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