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 list对象中嵌套元组使用sort时的排序方法
Apr 18 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
Python 读取指定文件夹下的所有图像方法
Apr 27 Python
机器学习之KNN算法原理及Python实现方法详解
Jul 09 Python
编写多线程Python服务器 最适合基础
Sep 14 Python
Python GUI布局尺寸适配方法
Oct 11 Python
python 调用有道api接口的方法
Jan 03 Python
Python实现操纵控制windows注册表的方法分析
May 24 Python
PyTorch实现更新部分网络,其他不更新
Dec 31 Python
在python3中实现更新界面
Feb 21 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
教你用python控制安卓手机
May 13 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
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
PHP编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
js运动事件函数详解
2016/10/21 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
微信小程序实现自动定位功能
2018/10/31 Javascript
微信小程序页面渲染实现方法
2019/11/06 Javascript
微信小程序轮播图swiper代码详解
2020/12/01 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
[43:35]TI4 循环赛第二日Liquid vs Fnatic
2014/07/11 DOTA
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
Python for Informatics 第11章 正则表达式(一)
2016/04/21 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
使用python PIL库实现简单验证码的去噪方法步骤
2019/05/10 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
pygame实现飞机大战
2020/03/11 Python
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
php优化查询foreach代码实例讲解
2021/03/24 PHP
高等教育学自荐书范文
2014/02/10 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers