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 EOL while scanning string literal问题解决方法
Sep 18 Python
深入探究Python中变量的拷贝和作用域问题
May 05 Python
KMP算法精解及其Python版的代码示例
Jun 01 Python
使用Python多线程爬虫爬取电影天堂资源
Sep 23 Python
Python2.7+pytesser实现简单验证码的识别方法
Dec 29 Python
python 对类的成员函数开启线程的方法
Jan 22 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
Jun 05 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
Jun 18 Python
通过cmd进入python的实例操作
Jun 26 Python
在 Python 中接管键盘中断信号的实现方法
Feb 04 Python
使用Keras实现简单线性回归模型操作
Jun 12 Python
Python中免验证跳转到内容页的实例代码
Oct 23 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实现的获取URL信息的类
2007/01/02 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
php递归实现无限分类的方法
2015/07/28 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
jQuery 计算iframe 窗口大小的方法
2014/05/13 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
NodeJs中express框架的send()方法简介
2017/06/20 NodeJs
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
把项目从Python2.x移植到Python3.x的经验总结
2015/04/20 Python
python实现文本文件合并
2015/12/29 Python
python对象及面向对象技术详解
2016/07/19 Python
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
Python之循环结构
2019/01/15 Python
详解Python装饰器
2019/03/25 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
英语商务邀请函范文
2014/01/16 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
大班亲子运动会方案
2014/06/10 职场文书
班组拓展活动方案
2014/08/14 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js