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模块学习 re 正则表达式
May 19 Python
python处理json数据中的中文
Mar 06 Python
老生常谈python函数参数的区别(必看篇)
May 29 Python
python基础练习之几个简单的游戏
Nov 10 Python
Django的性能优化实现解析
Jul 30 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
Jul 31 Python
python global关键字的用法详解
Sep 05 Python
浅析python内置模块collections
Nov 15 Python
Pytorch 之修改Tensor部分值方式
Dec 27 Python
python打开文件的方式有哪些
Jun 29 Python
python与c语言的语法有哪些不一样的
Sep 13 Python
Python之Matplotlib绘制热力图和面积图
Apr 13 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 批量删除 sql语句
2009/06/05 PHP
30 个很棒的PHP开源CMS内容管理系统小结
2011/10/14 PHP
php格式化时间戳显示友好的时间实现思路及代码
2014/10/23 PHP
php抽象方法和抽象类实例分析
2016/12/07 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
D3.js实现散点图和气泡图的方法详解
2016/09/21 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
微信小程序picker组件下拉框选择input输入框的实例
2017/09/20 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
Python应用库大全总结
2018/05/30 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
django基础学习之send_mail功能
2019/08/07 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
python 伯努利分布详解
2020/02/25 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
简述python&pytorch 随机种子的实现
2020/10/07 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
会展中心部门工作职责
2013/11/27 职场文书
日语专业毕业生自荐书
2014/06/18 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书
python迷宫问题深度优先遍历实例
2021/06/20 Python
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android