pytorch常见的Tensor类型详解
作者:fly_Xiaoma 发布时间:2022-10-25 19:34:01
标签:pytorch,Tensor类型
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.cuda和tensor.cpu的方法实现。
如:
#设置默认tensor,注意参数是字符串
torch.set_default_tensor_type('torch.IntTensor')
a=torch.Tensor(2,3)
print(a) #a现在是IntTensor
来源:https://blog.csdn.net/weixin_38664232/article/details/94192451


猜你喜欢
- 本文实例为大家分享了python opencv实现证件照换底功能的具体代码,供大家参考,具体内容如下思路:先转到HSV空间,利用颜色提取背景
- 安装刚接触Pillow的朋友先来看一下Pillow的安装方法,在这里我们以Mac OS环境为例:(1)、使用 pip 安装 Python 库
- startswith()方法Python startswith() 方法用于检查字符串是否是以指定子字符串开头如果是则返回 True,否则返
- 一、Python中的对象Python中一切皆是对象。————Guido van Rossum(1989)这句话只要你学过python,你就很
- 本文中介绍的系统优化,主要针对前端和后台这两方面(后台方面主要对SQL语句和数据存储进行了优化),下文中我们将介绍一些优化技巧和经验。技巧:
- 查看并打印matplotlib中所有的colormap(cmap)类型代码如下:方法一import matplotlib.pyplot as
- 如何正确理解MIME类型?mime联系介绍。序号内容类型文件扩展名描述1application/msworddocMicrosoft Wor
- 本文出自“Python为什么”系列,归档在 Github 上:https://github.com/chinesehuazhou/pytho
- 类视图使用装饰器为类视图添加装饰器,可以使用两种方法。为了理解方便,我们先来定义一个为函数视图准备的装饰器(在设计装饰器时基本都以函数视图作
- python是很容易上手的编程语言,但是有些时候使用python编写的程序并不能保证其运行速度(例如:while 和 for),这个时候我们
- 项目介绍最近学习django,通过文件上传下载这个小项目,总结下常用的知识点。做这个案例我有以下需求:1.要支持一次上传多个文件2.支持上传
- 在MySQL中,如何实现Top N及M至N段的记录查询?我们可以利用MySQL中SELECT支持的一个子句——LIMIT——来完成这项功能。
- 本文实例讲述了django框架模型层功能、组成与用法。分享给大家供大家参考,具体如下:Django models是Django框架自定义的一
- 最近在学爬虫时发现许多网站都有自己的反爬虫机制,这让我们没法直接对想要的数据进行爬取,于是了解这种反爬虫机制就会帮助我们找到解决方法。常见的
- 如下所示:原因1:版本不对,如用环境变量设置的python3.7路径,那么用的就是3.7的pip.exe安装了包。却用的是2.7的pytho
- 0.引言利用python开发,借助Dlib库捕获摄像头中的人脸,提取人脸特征,通过计算欧氏距离来和预存的人脸特征进行对比,达到人脸识别的目的
- 图的定义图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E
- 一.打包Flask项目1.1自己写个Flask2.2 下载pyinstallerpip install pyinstaller可选参数示例说
- 本文实例为大家分享了python编写实现抽奖器的具体代码,供大家参考,具体内容如下# coding=utf-8import sysimpor
- 1.什么是SQL注入 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL