深入理解PyTorch张量:从基础到实际应用
1. 广义张量
张量本质上是多维数组,在大多数应用场景中,这一概念是通用的。不过,在PyTorch的底层实现里,数据的存储方式和张量API是相互独立的。只要某个实现满足了张量API的要求,就可以被视为张量。
1.1 张量与NumPy数组的转换
- 从张量到NumPy数组 :可以使用
tensor.numpy()方法将张量转换为NumPy数组。返回的数组与张量共享底层缓冲区,这意味着在CPU内存中执行该操作基本没有成本。而且,如果修改NumPy数组,原始张量也会相应改变。若张量位于GPU上,PyTorch会将张量内容复制到CPU上的NumPy数组中。示例代码如下:
import numpy as np
import torch
# 创建一个张量
tensor = torch.tensor([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]], dtype=torch.float32)
# 转换为NumPy数组
numpy_array = tensor.numpy()
- 从NumPy数组到张量 :使用
torch.from_numpy()方法可以将NumPy数组转换为PyTorch张量,同样采用了
超级会员免费看
订阅专栏 解锁全文
1405

被折叠的 条评论
为什么被折叠?



