目录
Pytorch数据类型与转换(torch.tensor,torch.FloatTensor)一、torch.tensor二、torch.FloatTensor扩展:Pytorch数据类型转换1.Pytorch上的数据类型2. 数据类型之间的转换3. cuda数据类型,cpu类型和一般的数据类型逻辑值True和False转成0和1. +0Pytorch数据类型与转换(torch.tensor,torch.FloatTensor)
之前遇到转为tensor转化为浮点型的问题,今天整理下,我只讲几个我常用的,如果有更好的方法,欢迎补充
(资料图片仅供参考)
一、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.FloatTensortensor.LongTensortensor.ByteTensortensor.CharTensortensor.ShortTensortensor.IntTensortorch.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对象的封装。
转载链接:https://www.jianshu.com/p/eb7c6af28922
逻辑值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])
到此这篇关于Pytorch数据类型转换(torch.tensor,torch.FloatTensor)的文章就介绍到这了,更多相关Pytorch数据类型转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?