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通过exifread模块获得图片exif信息的方法
Mar 16 Python
python数据结构之图的实现方法
Jul 08 Python
浅谈python抛出异常、自定义异常, 传递异常
Jun 20 Python
python常见排序算法基础教程
Apr 13 Python
Python MySQL数据库连接池组件pymysqlpool详解
Jul 07 Python
python版学生管理系统
Jan 10 Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 Python
Python爬取成语接龙类网站
Oct 19 Python
不到40行代码用Python实现一个简单的推荐系统
May 10 Python
Python+OpenCv制作证件图片生成器的操作方法
Aug 21 Python
Python imutils 填充图片周边为黑色的实现
Jan 19 Python
Python字符串查找基本操作代码案例
Oct 27 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
Protoss兵种介绍
2020/03/14 星际争霸
php addslashes和mysql_real_escape_string
2010/01/24 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
javascript判断单选框或复选框是否选中方法集锦
2007/04/04 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
2012/12/04 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
vue.js中过滤器的使用教程
2017/06/08 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
使用axios发送post请求,将JSON数据改为form类型的示例
2019/10/31 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
python备份文件的脚本
2008/08/11 Python
python操作MongoDB基础知识
2013/11/01 Python
Python3实现生成随机密码的方法
2014/08/23 Python
Python中set与frozenset方法和区别详解
2016/05/23 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
Python3简单实现串口通信的方法
2019/06/12 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
劳力士官方珠宝商:J.R. Dunn Jewelers
2018/09/29 全球购物
大四毕业生学习总结的自我评价
2013/10/31 职场文书
农民致富事迹材料
2014/01/23 职场文书
房地产广告策划方案
2014/05/15 职场文书
2014年商场工作总结
2014/11/22 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python
mysql如何配置白名单访问
2021/06/30 MySQL
详解JS数组方法
2021/11/20 Javascript