Tensor与NumPy转换
核心转换方法
-
Tensor → NumPy
np_array_from_tensor = tensor_A.numpy() # 使用.numpy()方法直接转换- 适用场景:需要使用NumPy生态工具(如Matplotlib绘图、SciPy计算)时
- 注意:仅CPU上的Tensor支持此操作,GPU Tensor需先调用
.cpu()
-
NumPy → Tensor
tensor_from_np = torch.from_numpy(np_array_from_tensor) # 从数组创建Tensor- 优势:比
torch.tensor()更高效(不复制数据) - 限制:仅支持CPU数组,且数据类型需与PyTorch兼容
- 优势:比
关键特性:内存共享机制
代码中通过修改NumPy数组后Tensor随之变化的现象,揭示了两者的底层关联:
np_array_from_tensor[0, 0] = 999 # 修改NumPy数组
pr