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中利用队列asyncio.Queue进行通讯详解
Sep 10 Python
Django实现组合搜索的方法示例
Jan 23 Python
python 获取字符串MD5值方法
May 29 Python
django query模块
Apr 20 Python
python地震数据可视化详解
Jun 18 Python
python爬虫添加请求头代码实例
Dec 28 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
Feb 03 Python
python 实现单例模式的5种方法
Sep 23 Python
Python3如何使用range函数替代xrange函数
Oct 05 Python
对Pytorch 中的contiguous理解说明
Mar 03 Python
浅谈Python numpy创建空数组的问题
May 25 Python
pycharm安装深度学习pytorch的d2l包失败问题解决
Mar 25 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的五种设计模式
2012/09/05 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
2013/06/03 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
php实现微信扫码支付
2017/03/26 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
2020/08/11 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
js实现匹配时换色的输入提示特效代码
2015/08/17 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
微信小程序修改swiper默认指示器样式的实例代码
2018/07/18 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
在layui.use 中自定义 function 的正确方法
2019/09/16 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
艺术家策划的室内设计:Curious Egg
2019/03/06 全球购物
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
2014年教师节寄语
2014/04/03 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android