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打开网页和暂停实例
Sep 30 Python
Python中的defaultdict模块和namedtuple模块的简单入门指南
Apr 01 Python
python任务调度实例分析
May 19 Python
python 打印对象的所有属性值的方法
Sep 11 Python
python编程实现12306的一个小爬虫实例
Dec 27 Python
python 读取视频,处理后,实时计算帧数fps的方法
Jul 10 Python
Python基本socket通信控制操作示例
Jan 30 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
Mar 05 Python
Django框架中序列化和反序列化的例子
Aug 06 Python
python3 deque 双向队列创建与使用方法分析
Mar 24 Python
你应该知道的Python3.6、3.7、3.8新特性小结
May 12 Python
Pytorch 使用CNN图像分类的实现
Jun 16 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
杏林同学录(六)
2006/10/09 PHP
php格式化时间戳显示友好的时间实现思路及代码
2014/10/23 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
PHP内置加密函数详解
2016/11/20 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
jcarousellite.js 基于Jquery的图片无缝滚动插件
2010/12/30 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
js控制的遮罩层实例介绍
2013/05/29 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
python创建文件备份的脚本
2018/09/11 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
django 实现简单的插入视频
2020/04/07 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
新媒传信软件测试面试题
2013/02/24 面试题
仓库管理专业个人自我评价范文
2013/11/11 职场文书
离婚协议书格式
2014/11/21 职场文书
地陪导游欢迎词
2015/01/26 职场文书
简历自荐信范文
2015/03/09 职场文书
2015年保管员工作总结
2015/04/30 职场文书
canvas绘制折线路径动画实现
2021/05/12 Javascript
正则表达式基础与常用验证表达式
2022/06/16 Javascript