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 16 Python
Python使用logging结合decorator模式实现优化日志输出的方法
Apr 16 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
python编写Logistic逻辑回归
Dec 30 Python
python实时获取外部程序输出结果的方法
Jan 12 Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 Python
使用python无账号无限制获取企查查信息的实例代码
Apr 17 Python
利用python进行文件操作
Dec 04 Python
python中把元组转换为namedtuple方法
Dec 09 Python
python-for x in range的用法(注意要点、细节)
May 10 Python
opencv 分类白天与夜景视频的方法
Jun 05 Python
Python并发编程实例教程之线程的玩法
Jun 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
第十一节 重载 [11]
2006/10/09 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
PHP7 新增常量
2021/03/09 PHP
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
jquery插件开发之实现md5插件
2014/03/17 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
python删除某个字符
2018/03/19 Python
python简单操作excle的方法
2018/09/12 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
Python的形参和实参使用方式
2019/12/24 Python
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
美容院经理岗位职责
2014/04/03 职场文书
大学生就业求职信
2014/06/12 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
培训督导岗位职责
2015/04/10 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
教你一步步实现一个简易promise
2021/11/02 Javascript
Python使用pandas导入csv文件内容的示例代码
2022/12/24 Python