pytorch tensor和 numpy的相互转换

tensor 转换为 numpy

采用 .numpy() 函数即可

a=torch.tensor([1,2,3])  
print(a)
print(type(a))
print(a.dtype)
b=a.numpy()
print(b)
print(type(b))
print(b.dtype)

输出:

pytorch tensor和 numpy的相互转换_第1张图片

torch.tensor 整数默认为 int64 即 LongTensor 小数默认为 float32
不过 一般对tensor 采用 tensor.data() 或者 tensor.detach() 来将变量脱离计算图,不计算梯度。

numpy 转换为 tensor

有两种函数
一种是
torch.from_numpy()

第二种是
torch.tensor() 其中用这种,还可以转换数据类型

a=np.array([1,2,3])
print(a)
print(type(a))
print(a.dtype)
b=torch.from_numpy(a)
# b=torch.tensor(a)
print(b)
print(type(b))
print(b.dtype)

pytorch tensor和 numpy的相互转换_第2张图片

Pytorch中定义了8种CPU张量类型和对应的GPU张量类型
torch.FloatTensor(2,3) #构建一个2*3 Float类型的张量   torch.float32
torch.DoubleTensor(2,3) #构建一个2*3 Double类型的张量   torch.float64
torch.HalfTensor (2,3) #构建一个2*3 HalfTenso类型的张量
torch.ByteTensor(2,3) #构建一个2*3 Byte类型的张量
torch.CharTensor(2,3) #构建一个2*3 Char类型的张量
torch.ShortTensor(2,3) #构建一个2*3 Short类型的张量
torch.IntTensor(2,3) #构建一个2*3 Int类型的张量    torch.int32
torch.LongTensor(2,3) #构建一个2*3 Long类型的张量   torch.int64

pytorch tensor和 numpy的相互转换_第3张图片

你可能感兴趣的:(Deep,Learning,pytorch,深度学习,python)