«

Pytorch数据类型与转换的方法有哪些

时间:2024-3-7 10:30     作者:韩俊     分类: Python


本篇内容介绍了“Pytorch数据类型与转换的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Pytorch数据类型与转换(torch.tensor,torch.FloatTensor)

一、torch.tensor

1.首先讲下torch.tensor,默认整型数据类型为torch.int64,浮点型为torch.float32

2.这是我认为平常最爱用的转数据类型的方法,可以用dtype去定义数据类型

二、torch.FloatTensor

1.这个函数不要乱用,首先它可以将变量转化为浮点型32位,这里注意此时的变量类型为列表,或数组等,此时参数为单个变量

2.当函数参数为整形时,表示生成矩阵的维度,此时参数可以为多个变量

补充:还有一种方法通过numpy数组定义数据类型,再转化为tensor,这个方法不多讲了。

扩展:Pytorch数据类型转换

1. Pytorch上的数据类型

Pytorch的类型可以分为CPU和GPU上的Tensor, 它们拥有的数据类型是基本上是一样的:

  • tensor.FloatTensor

  • tensor.LongTensor

  • tensor.ByteTensor

  • tensor.CharTensor

  • tensor.ShortTensor

  • tensor.IntTensor

  • torch.LongTensor

其中

torch.Tensor

是默认的

tensor.FloatTensor

的简称。


2. 数据类型之间的转换

tensor = torch.Tensor(3, 5)
## torch.long() 将tensor投射为long类型:
newtensor = torch.long()
## torch.int()将该tensor投射为int类型:
newtensor = torch.int()
## torch.double()将该tensor投射为double类型:
newtensor = torch.double()

一般,只要在Tensor后加

long(), int(), double(), float(), byte()

等函数就能将Tensor的类型进行转换

除此之外,可以使用

type()

函数,data为Tensor数据类型,data.type()给出data的类型,如果使用

data.type(torch.FloatTensor)

则强制转换为

torch.FloatTensor

类型的张量, 如果不知道什么类型,可以使用

tensor_1.type_as(tensor_2)

, 将

tensor_1

转换成

tensor_2


self = torch.LongTensor(3, 5)
# 转换为其他类型
print self.type(torch.FloatTensor)

3. cuda数据类型,cpu类型和一般的数据类型

  • 如果没有特别说明:tensor是cpu上的变量

  • 使用gpu张量:

    tensor.cuda()


  • 使用cpu张量:

    tensor.cpu()


  • Variable转换成普通的

    Tensor: variable.data()


  • Tesnor转换成numpy array的格式:

    tensor.numpy()


  • numpy数据转换成Tensor: 

    torch.from_numpy(np_data)


  • Tensor转换成Variable: 

    Variable(tensor)


Pytorch数据类似pytorch中的tensor, 更重要的是tensor可以使用GPU来加速,并且变成Variable可以实现自动求导的功能,Variable是对Tensor对象的封装。

逻辑值True和False转成0和1. +0

print(y)
print(y+0)
## 输出结果
tensor([ True, False, False,  True,  True, False, False,  True,  True, False])
tensor([1, 0, 0, 1, 1, 0, 0, 1, 1, 0])

标签: python

热门推荐