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查看多台服务器进程的脚本分享
Jun 11 Python
Python简单生成8位随机密码的方法
May 24 Python
python用pickle模块实现“增删改查”的简易功能
Jun 07 Python
python中实现k-means聚类算法详解
Nov 11 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
Dec 09 Python
用python实现百度翻译的示例代码
Mar 09 Python
python广度优先搜索得到两点间最短路径
Jan 17 Python
python读取并定位excel数据坐标系详解
Jun 26 Python
flask 框架操作MySQL数据库简单示例
Feb 02 Python
Python基于callable函数检测对象是否可被调用
Oct 16 Python
python cookie反爬处理的实现
Nov 01 Python
Python import模块的缓存问题解决方案
Jun 02 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
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
PHP判断图片格式的七种方法小结
2013/06/03 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
由document.body和document.documentElement想到的
2009/04/13 Javascript
js自定义事件代码说明
2011/01/31 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
JavaScript手机振动API
2016/06/11 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
2018/09/18 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
python实现pdf转换成word/txt纯文本文件
2018/06/07 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
自动化系在校本科生求职信
2013/10/23 职场文书
经典广告词大全
2014/03/14 职场文书
团购业务员岗位职责
2014/03/15 职场文书
个人承诺书格式
2014/06/03 职场文书
庆祝教师节标语
2014/10/09 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
Nginx进程管理和重载原理详解
2021/04/22 Servers
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
德劲DE1102数字调谐收音机机评
2022/04/07 无线电
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers