pytorch中tensor张量数据类型的转化方式
1.tensor张量与numpy相互转换
tensor----->numpy importtorch a=torch.ones([2,5]) tensor([[1.,1.,1.,1.,1.], [1.,1.,1.,1.,1.]]) #********************************** b=a.numpy() array([[1.,1.,1.,1.,1.], [1.,1.,1.,1.,1.]],dtype=float32)
numpy----->tensor importnumpyasnp a=np.ones([2,5]) array([[1.,1.,1.,1.,1.], [1.,1.,1.,1.,1.]]) #********************************** b=torch.from_numpy(a) tensor([[1.,1.,1.,1.,1.], [1.,1.,1.,1.,1.]],dtype=torch.float64)
2.tensor张量与list相互转换
tensor—>list a=torch.ones([1,5]) tensor([[1.,1.,1.,1.,1.]]) #*********************************** b=a.tolist() [[1.0,1.0,1.0,1.0,1.0]] list—>tensor a=list(range(1,6)) [1,2,3,4,5] #********************************** b=torch.tensor(a) tensor([1,2,3,4,5])
3.tensor张量见类型转换
构建一个新的张量,你要转变成不同的类型只需要根据自己的需求选择即可
tensor=torch.Tensor(3,5) #torch.long()将tensor投射为long类型 newtensor=tensor.long() #torch.half()将tensor投射为半精度浮点类型 newtensor=tensor.half() #torch.int()将该tensor投射为int类型 newtensor=tensor.int() #torch.double()将该tensor投射为double类型 newtensor=tensor.double() #torch.float()将该tensor投射为float类型 newtensor=tensor.float() #torch.char()将该tensor投射为char类型 newtensor=tensor.char() #torch.byte()将该tensor投射为byte类型 newtensor=tensor.byte() #torch.short()将该tensor投射为short类型 newtensor=tensor.short()
4.type_as()将张量转换成指定类型张量
>>>a=torch.Tensor(2,5) >>>a tensor([[1.9431e-19,4.8613e+30,1.4603e-19,2.0704e-19,4.7429e+30], [1.6530e+19,1.8254e+31,1.4607e-19,6.8801e+16,1.8370e+25]]) >>>b=torch.IntTensor(1,2) >>>b tensor([[16843009,1]],dtype=torch.int32) >>>a.type_as(b) tensor([[0,-2147483648,0,0,-2147483648], [-2147483648,-2147483648,0,-2147483648,-2147483648]], dtype=torch.int32) >>>a tensor([[1.9431e-19,4.8613e+30,1.4603e-19,2.0704e-19,4.7429e+30], [1.6530e+19,1.8254e+31,1.4607e-19,6.8801e+16,1.8370e+25]])
以上这篇pytorch中tensor张量数据类型的转化方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。