构建
- 构建一个n∗mn*mn∗m的Float类型张量(也是默认张量类型)
torch.FloatTensor(n, m) - 构建一个n∗mn*mn∗m的Double类型张量
torch.DoubleTensor(n, m) - 构建一个n∗mn*mn∗m的Byte类型张量
torch.ByteTensor(n, m) - 构建一个n∗mn*mn∗m的Char类型张量
torch.CharTensor(n, m) - 构建一个n∗mn*mn∗m的Short类型张量
torch.ShortTensor(n, m) - 构建一个n∗mn*mn∗m的Int类型张量
torch.IntTensor(n, m) - 构建一个n∗mn*mn∗m的Long类型张量
torch.LongTensor(n, m)
相互转换
- 将tensor投射为long类型
newtensor = tensor.long() - 将tensor投射为半精度浮点类型
newtensor = tensor.half() - 将tensor投射为int类型
newtensor = tensor.int() - 将tensor投射为double类型
newtensor = tensor.double() - 将tensor投射为float类型
newtensor = tensor.float() - 将tensor投射为char类型
newtensor = tensor.char() - 将tensor投射为byte类型
newtensor = tensor.byte() - 将tensor投射为short类型
newtensor = tensor.short()
type(new_type=None, async=False)如果未提供new_type,则返回类型,否则将此对象转换为指定的类型。 如果已经是正确的类型,则不会执行且返回原对象
tensor_A = torch.LongTensor(3, 5)
# 转换为其他类型
print(tensor_A.type(torch.FloatTensor))
使用type_as(tesnor)将张量转换为给定tensor类型的张量
tensor_A= torch.Tensor(3, 5)
tensor_B = torch.IntTensor(2,3)
print tensor_A.type_as(tensor_B )
拼接
将tensor_A与tensor_B沿dim=k合并,应注意除了dim=k以外,tensor_A与tensor_B沿其他维度的size均应相等,否则无法合并。例如一个(1, 2, 3)的tensor和(5, 2, 3)的tensor沿维度0拼接,得到的结果是(6, 2, 3)
tenor_C = torch.cat(inputs=(tensor_A, tensor_B), dimension=k)
tensor.stack()的意思是,两个(1, 2)的tenso沿维度0堆叠,则会变为(2, 1, 2)的tensor;沿维度1堆叠,则会变为(1, 2, 2)的tensor
参考文献
https://ptorch.com/news/71.html
https://www.cnblogs.com/yifdu25/p/9399047.html
网友评论