- array str 转 int
b = a.astype(int)
- numpy 转 tensor
a = numpy.array([1, 2, 3])
t = torch.from_numpy(a)
print(t)
#tensor([ 1, 2, 3])
3.tensor float 转long
import torch
a = 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 torch
a = 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类型
- b转换成和a一样的类型
import torch
a = 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]])