pytorch常见的Tensor类型详解


Posted in Python onJanuary 15, 2020

Tensor有不同的数据类型,每种类型分别有对应CPU和GPU版本(HalfTensor除外)。默认的Tensor是FloatTensor,可通过torch.set_default_tensor_type修改默认tensor类型(如果默认类型为GPU tensor,则所有操作都将在GPU上进行)。

Tensor的类型对分析内存占用很有帮助,例如,一个size为(1000,1000,1000)的FloatTensor,它有1000*1000*1000=10^9个元素,每一个元素占用32bit/8=4Byte内存,所以共占用大约4GB内存/显存。HalfTensor是专为GPU版本设计的,同样的元素个数,显存占用只有HalfTensor的一半,所以可以极大缓解GPU显存不足的问题,但是由于HalfTensor所能表示的数值大小和精度有限,所以可能出现溢出等问题。

数据类型 CPU Tensor GPU Tensor
32 bit 浮点 torch.FloatTensor torch.cuda.FloatTensor
64 bit 浮点 torch.DoubleTensor torch.cuda.DoubleTensor
16 bit 半精度浮点 N/A torch.cuda.HalfTensor
8 bit 无符号整形(0~255) torch.ByteTensor torch.cuda.ByteTensor
8 bit 有符号整形(-128~127) torch.CharTensor torch.cuda.CharTensor
16 bit 有符号整形 torch.ShortTensor torch.cuda.ShortTensor
32 bit 有符号整形 torch.IntTensor torch.cuda.IntTensor
64 bit 有符号整形 torch.LongTensor torch.cuda LongTensor

各数据类型之间可以互相转换,type(new_type)是通用的做法,同时还有float、long、half等快捷方法。CPU tensor和GPU tensor之间的互换是通过tensor.cudatensor.cpu的方法实现。

如:

#设置默认tensor,注意参数是字符串
torch.set_default_tensor_type('torch.IntTensor')
 
a=torch.Tensor(2,3)
print(a)  #a现在是IntTensor

以上这篇pytorch常见的Tensor类型详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python下利用OpenCV来旋转图像的教程
Apr 16 Python
Python函数返回值实例分析
Jun 08 Python
Python之re操作方法(详解)
Jun 14 Python
python使用fork实现守护进程的方法
Nov 16 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
May 24 Python
python 生成图形验证码的方法示例
Nov 11 Python
详解python配置虚拟环境
Apr 08 Python
Python PO设计模式的具体使用
Aug 16 Python
Python整数与Numpy数据溢出问题解决
Sep 11 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
pytorch AvgPool2d函数使用详解
Jan 03 Python
Python调用C/C++的方法解析
Aug 05 Python
pytorch 常用线性函数详解
Jan 15 #Python
python3.8下载及安装步骤详解
Jan 15 #Python
浅谈pytorch、cuda、python的版本对齐问题
Jan 15 #Python
pytorch模型预测结果与ndarray互转方式
Jan 15 #Python
pytorch实现对输入超过三通道的数据进行训练
Jan 15 #Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
Jan 15 #Python
pytorch构建多模型实例
Jan 15 #Python
You might like
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
PHP集成FCK的函数代码
2008/09/27 PHP
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
Base64在线编码解码实现代码 演示与下载
2011/01/08 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
做好七件事帮你提升jQuery的性能
2014/02/06 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
2014/11/02 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
Javascript中parseInt的正确使用方式
2018/10/17 Javascript
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
详细介绍Python中的偏函数
2015/04/27 Python
使用Python绘制图表大全总结
2017/02/11 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
Python DataFrame.groupby()聚合函数,分组级运算
2018/09/18 Python
对python3新增的byte类型详解
2018/12/04 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
python3射线法判断点是否在多边形内
2019/06/28 Python
Python学习笔记之列表推导式实例分析
2019/08/13 Python
python3 下载网络图片代码实例
2019/08/27 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
自学考试自我鉴定范文
2013/09/26 职场文书
在校大学生的职业生涯规划书
2014/03/14 职场文书
党支部换届选举方案
2014/05/08 职场文书
2014年教师节活动总结
2014/08/29 职场文书
2016年会开场白台词
2015/06/01 职场文书
基于PostgreSQL/openGauss 的分布式数据库解决方案
2021/12/06 PostgreSQL
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers