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实现简单socket程序在两台电脑之间传输消息的方法
Mar 13 Python
python创建和删除目录的方法
Apr 29 Python
Linux下为不同版本python安装第三方库
Aug 31 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
Nov 11 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 Python
Python实现的删除重复文件或图片功能示例【去重】
Apr 23 Python
Tensorflow获取张量Tensor的具体维数实例
Jan 19 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
django model object序列化实例
Mar 13 Python
Selenium启动Chrome时配置选项详解
Mar 18 Python
pycharm 实现调试窗口恢复
Feb 05 Python
python 对xml解析的示例
Feb 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
php中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
ThinkPHP中limit()使用方法详解
2016/04/19 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
javascript 常用关键字列表集合
2007/12/04 Javascript
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
JS字符串函数扩展代码
2011/09/13 Javascript
基于jQuery的模仿新浪微博时间的组件
2011/10/04 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
JSuggest自动匹配下拉框使用方法(示例代码)
2013/12/27 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
详解jQuery设置内容和属性
2019/04/11 jQuery
Vue使用axios出现options请求方法
2019/05/30 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
python实用代码片段收集贴
2015/06/03 Python
python生成器表达式和列表解析
2016/03/10 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
中介公司区域经理岗位职责范本
2014/03/02 职场文书
我的中国梦演讲稿300字
2014/08/19 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
2014党的群众路线教育实践活动总结材料
2014/10/31 职场文书
MySQL大小写敏感的注意事项
2021/05/24 MySQL
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
Django实现drf搜索过滤和排序过滤
2021/06/21 Python
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL