Python|numpy array / pytorch tensor 数据类型转换

  1. array str 转 int
b = a.astype(int)

  1. numpy 转 tensor
a = numpy.array([1, 2, 3]) t = torch.from_numpy(a) print(t)#tensor([ 1,2,3])

【Python|numpy array / pytorch tensor 数据类型转换】3.tensor float 转long
import torcha = torch.rand(3,3) print(a)b = a.long() print(b)# tensor([[0.1139, 0.3460, 0.4478], #[0.0205, 0.9585, 0.0103], #[0.2299, 0.5627, 0.1236]]) # tensor([[0, 0, 0], #[0, 0, 0], #[0, 0, 0]])

tensor传cuda再转long
import torcha = torch.rand(3,3) print(a)b = a.type(torch.cuda.LongTensor) print(b)#tensor([[0.6625, 0.0186, 0.0780], #[0.3266, 0.0136, 0.3116], #[0.8770, 0.2193, 0.1572]]) # tensor([[0, 0, 0], #[0, 0, 0], #[0, 0, 0]], device='cuda:0')

tensor数据类型转换
torch.long() 将tensor转换为long类型torch.half() 将tensor转换为半精度浮点类型torch.int() 将该tensor转换为int类型torch.double() 将该tensor转换为double类型torch.float() 将该tensor转换为float类型torch.char() 将该tensor转换为char类型torch.byte() 将该tensor转换为byte类型torch.short() 将该tensor转换为short类型

  1. b转换成和a一样的类型
import torcha = torch.Tensor(2, 3) b = a.long() c = a.type_as(b)print(a) print(b) print(c)# tensor([[5.5168e+15, 0.0000e+00, 8.4078e-45], #[0.0000e+00, 1.4013e-45, 0.0000e+00]]) # tensor([[5516833952104448,0,0], #[0,0,0]]) # tensor([[5516833952104448,0,0], #[0,0,0]])

    推荐阅读