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的SimPy库简化复杂的编程模型的介绍
Apr 13 Python
python文件操作相关知识点总结整理
Feb 22 Python
用Python写冒泡排序代码
Apr 12 Python
Python mutiprocessing多线程池pool操作示例
Jan 30 Python
对python条件表达式的四种实现方法小结
Jan 30 Python
使用Python Pandas处理亿级数据的方法
Jun 24 Python
python循环定时中断执行某一段程序的实例
Jun 29 Python
python实现动态数组的示例代码
Jul 15 Python
500行代码使用python写个微信小游戏飞机大战游戏
Oct 16 Python
Python基于requests库爬取网站信息
Mar 02 Python
Python生成器实现简单"生产者消费者"模型代码实例
Mar 27 Python
记一次django内存异常排查及解决方法
Aug 07 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
DOM相关内容速查手册
2007/02/07 Javascript
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
document.getElementById方法在Firefox与IE中的区别
2010/05/18 Javascript
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
小程序选项卡以及swiper套用(跨页面)
2020/06/19 Javascript
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python 结巴分词实现关键词抽取分析
2017/10/21 Python
Python实现图片拼接的代码
2018/07/02 Python
python调用百度语音REST API
2018/08/30 Python
python将list转为matrix的方法
2018/12/12 Python
python单线程文件传输的实例(C/S)
2019/02/13 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
Python程序控制语句用法实例分析
2020/01/14 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
python跨文件使用全局变量的实现
2020/11/17 Python
python中numpy数组与list相互转换实例方法
2021/01/29 Python
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
函数指针的定义是什么
2016/08/14 面试题
英语老师推荐信
2014/02/26 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
MySQL中CURRENT_TIMESTAMP的使用方式
2021/11/27 MySQL
python数字图像处理实现图像的形变与缩放
2022/06/28 Python