张量与Python标量的核心区别
张量(Tensor) 是PyTorch中的核心数据结构,类似于多维数组:
- 支持GPU加速计算
- 跟踪计算历史(用于自动求导)
- 可以包含多个元素
Python标量(int/float) 是普通的Python数值类型:
计算图断开的原因
PyTorch的自动求导系统(Autograd)依赖于计算图来跟踪所有计算操作。当你从张量中提取标量值时:
- 提取的标量值是普通Python对象,不再是张量
- 它不再与计算图中的任何节点相连
- 因此无法进行反向传播或梯度计算
示例说明
下面通过具体代码演示这种区别: