Numpy、List、Tensor三者的相互转换
1.List、Numpy转换
(1)List变成Numpy
a = [1, 2, 3, 4, 5, 6]
a = np.array(a)
(2)Numpy变成List
a = np.array([1, 2, 3, 4, 5, 6])
a = a.tolist()
2.List、Tensor转换
(1)List变成Tensor
a = [1, 2, 3, 4, 5, 6]
a = torch.tensor(a)
或
a = torch.Tensor(a)
(Ps:torch.tensor()生成的tensor会依据数据跟dtype指定,而torch.Tensor()生成的是float类型)
(2)Tensor变成List
a = torch.rand(1,2,3)
a = a.tolist()
3.Numpy、Tensor转换
(1)Numpy变成tensor
a = np.array([[1,2,3],[4,5,6]])
a = torch.tensor(a)
(2)Tensor变成numpy
a = torch.rand(2,3)
a = a.numpy()
(Ps:有时候tensor放在GPU上要在变成numpy之前需要先放在CPU上,如果其包含梯度信息要剔除梯度信息,具体如下)
a = a.cpu().detach.numpy()