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 代码效率的方法
Jul 03 Python
Python 通过URL打开图片实例详解
Jun 01 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
Jun 26 Python
Python爬虫之pandas基本安装与使用方法示例
Aug 08 Python
Python绘制热力图示例
Sep 27 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
Python批量处理csv并保存过程解析
May 16 Python
基于Python实现视频的人脸融合功能
Jun 12 Python
Pytorch 图像变换函数集合小结
Feb 01 Python
python time.strptime格式化实例详解
Feb 03 Python
Python基础之pandas数据合并
Apr 27 Python
pytorch实现手写数字图片识别
May 20 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
php中对xml读取的相关函数的介绍一
2008/06/05 PHP
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
IE和Firefox下javascript的兼容写法小结
2008/12/10 Javascript
jQuery对象[0]是什么含义?
2010/07/31 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
jQuery Mobile页面返回不需要重新get
2016/04/26 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
python开发的小球完全弹性碰撞游戏代码
2013/10/15 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
取numpy数组的某几行某几列方法
2018/04/03 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
Python中常用的os操作汇总
2020/11/05 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
一个入门级python爬虫教程详解
2021/01/27 Python
物流管理专业职业生涯规划书
2014/01/06 职场文书
运动会入场式解说词
2014/02/18 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
基层党支部整改方案
2014/10/25 职场文书
谢师宴学生致辞
2015/07/27 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python
Nginx反向代理学习实例教程
2021/10/24 Servers
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
2022/04/24 Vue.js