Tensor 和tensor 都能用于生成新的张量
torch.Tensor()
python类,默认张量类型torch.FloatTensor()的别名, torch.Tensor([1,2])会调用Tensor类的构造函数__init__,生成单精度浮点类型的张量。
a = torch.Tensor([1, 2]) print(a) # tensor([1., 2.]) print(type(a)) # <class 'torch.Tensor'> print(a.type()) # torch.FloatTensor
torch.tensor()
python函数,torch.tensor(data, dtype=None, device=None, requires_grad=False) data可以是:list, tuple, NumPy ndarray, scalar和其他类型。 torch.tensor会从data中的数据部分做拷贝(而不是直接引用), 根据原始数据类型生成相应的torch.LongTensor、torch.FloatTensor和torch.DoubleTensor。
b = torch.tensor([1, 2]) print(b) # tensor([1, 2]) print(type(b)) # <class 'torch.Tensor'> print(b.type()) # torch.LongTensor cc = np.zeros(2, dtype=np.float64) c = torch.tensor(cc) print(c.type()) # torch.DoubleTensor
torch.empty()
生成指定类型、指定设备以及其他参数的张量, torch.Tensor()只能指定数据类型为torch.float, torch.Tensor()可以看做torch.empty()的一个特殊情况。
e = torch.empty(size=(3, )) print(e) # tensor([0., 2., 0.]) e2 = torch.empty(3) print(e2) # tensor([9.2196e-41, 0.0000e+00, 0.0000e+00])
特殊情况
s1 = torch.tensor(1) print(s1) # tensor(1) print(s1.type()) # torch.LongTensor s2 = torch.Tensor(1) print(s2) # tensor([0.]) print(s2.type()) # torch.FloatTensor
参考: