张量的概念
张量是一个一维数组,它是标量、向量、矩阵的高维拓展
在图像处理中,例如常见的灰度图像就是一个2
维张量,RGB
图像则是一个3
维张量
在数学中张量通常表示的是多维度数组;在pytorch
中张量还和自动求导相关
张量的创建
一、直接创建
torch.tensor
torch.tensor(
data, # 可以是list,numpy
dtype=None, # 数据类型,默认与data一致
device=None, # 所在设备,cuda/cpu
requires_grad=False, # 是否需要梯度
pin_memory=False) # 是否存于锁页内存
功能:从data
创建tensor
例如:
arr = np.ones((3,3))
print("ndarray的数据类型:", arr.dtype)
t = torch.tensor(arr, device='cuda')
print(t)
输出的结果为:
ndarry的数据类型: float64
tensor([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]], device='cuda:0', dtype=torch.float64)
通过观察发现,tensor
的数据类型与numpy
创建的数据类型是一致的
torch.from_numpy(ndarray)
功能:从numpy
创建tensor
注意事项:从torch.from_numpy
创建的tensor
于原ndarray
共享内存,当修改其中一个数据,另外一个也将会被改动
例如:
arr &