基本类型
torch.Tensor是一种包含单一数据类型元素的多维矩阵。测试
Torch定义了七种CPU tensor类型和八种GPU tensor类型:spa
Data tyoe | CPU tensor | GPU tensor |
---|---|---|
32-bit floating point | torch.FloatTensor |
torch.cuda.FloatTensor |
64-bit floating point | torch.DoubleTensor |
torch.cuda.DoubleTensor |
16-bit floating point | N/A | torch.cuda.HalfTensor |
8-bit integer (unsigned) | torch.ByteTensor |
torch.cuda.ByteTensor |
8-bit integer (signed) | torch.CharTensor |
torch.cuda.CharTensor |
16-bit integer (signed) | torch.ShortTensor |
torch.cuda.ShortTensor |
32-bit integer (signed) | torch.IntTensor |
torch.cuda.IntTensor |
64-bit integer (signed) | torch.LongTensor |
torch.cuda.LongTensor |
torch.DoubleTensor(2, 2) 构建一个22 Double类型的张量 torch.ByteTensor(2, 2) 构建一个22 Byte类型的张量 torch.CharTensor(2, 2) 构建一个22 Char类型的张量 torch.ShortTensor(2, 2) 构建一个22 Short类型的张量 torch.IntTensor(2, 2) 构建一个22 Int类型的张量 torch.LongTensor(2, 2) 构建一个22 Long类型的张量code
类型转换
2.1 CPU和GPU的Tensor之间转换
从cpu –> gpu,使用data.cuda()便可。 若从gpu –> cpu,则使用data.cpu()。it
2.2 Tensor与Numpy Array之间的转换
Tensor –> Numpy.ndarray 能够使用 data.numpy(),其中data的类型为torch.Tensor。 Numpy.ndarray –> Tensor 能够使用torch.from_numpy(data),其中data的类型为numpy.ndarray。table
2.3 Tensor的基本类型转换(也就是float转double,转byte这种。)
为了方便测试,咱们构建一个新的张量,你要转变成不一样的类型只须要根据本身的需求选择便可class
-
tensor = torch.Tensor(2, 5)model
-
torch.long() 将tensor投射为long类型 newtensor = tensor.long()数据类型
-
torch.half()将tensor投射为半精度浮点(16位浮点)类型 newtensor = tensor.half()float
-
torch.int()将该tensor投射为int类型 newtensor = tensor.int()numpy
-
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()
若是当你须要提升精度,好比说想把模型从float变为double。那么能够将要训练的模型设置为model = model.double()。此外,还要对全部的张量进行设置:pytorch.set_default_tensor_type('torch.DoubleTensor'),不过double比float要慢不少,要结合实际状况进行思考。