list:a=[1,2,3]
numpy:b=[1 2 3]
tensor:c=[1 2 3]
list----->numpy
import numpy as np
b = np.array(a)
numpy----->list
a = b.tolist()
numpy----->tensor
import torch
c = torch.form_numpy(b)
tensor---->numpy
b = c.numpy()
注意:tensor只能在cpu上转换为数组,如果在GPU上
b = c.cpu().numpy()
list---->tensor
import torch
c = torch.Tensor(a)
注意:默认为浮点型,如需要其他格式,详见参考链接
tensor---->list
a = c.numpy().tolist() #tensor在cpu上
a = c.cpu().numpy().tolist() #tensor在GPU上
tensor转换为list主要是先转换为数组numpy,然后在转换为列表list
个人理解:
1.list和numpy转换为tensor都是利用的tensor函数,所以list和numpy要作为输入放在括号里。list转numpy同理。
2.tensor转numpy和numpy转list都是用的对应内部函数,所以只需要变量.调用函数即可。
3.tensor转numpy要在cpu上转
4.list转tensor默认是float