PyTorch概述(六)---View

Tensor.view(*shape)-->Tensor

  • 返回一个新的张量同之前的张量具有相同的数据,但是具有不同的形状;
  • 返回的张量同之前的张量共享相同的数据,必须具有相同数目的元素,可能具有不同的形状;
  • 对于经过view操作的张量,新的尺寸必须同原始的张量大小和步长兼容;
  • 每一个新的观察维度必须或者是一个原始维度的子空间;
  • 或者跨越原始维度,满足以下条件:

\forall i=d,...,d+k-1,

stride[i]=stride[i+1]\times size[i+1]

  • 不满足上述条件,在不拷贝原始张量的情况下将不会view成功;
  • 当不了解是否一个view可以执行时,推荐使用reshape();
  • reshape()返回一个view如果形状是兼容的,且复制原始的张量,等效于调用contiguous();

参数

  • shape(torch.Size or int)---要求的尺寸

实例

import torchx=torch.randn(4,4)
x.size()
#torch.Size([4,4]}
y=x.view(16)
y.size()
#torch.Size([16])
z=x.view(-1,8) #the size -1 is inferred from other dimensions
z.size()
#torch.Size([2,8])a=torch.randn(1,2,3,4)
a.size()
#torch.Size([1,2,3,4])
b=a.transpose(1,2) #swap 2nd and 3rd dimension
b.size()
#torch.Size([1,3,2,4])
c=a.view(1,3,2,4) #Does not change tensor layout in memeory
c.size()
#torch.Size([1,3,2,4])
torch.equal(b,c)
#Flase

view(dtype)-->Tensor

  • 返回一个同原始张量具有相同数据的新张量,但是具有不同的数据类型;
  • 如果dtype的单元尺寸不同于原始张量dtype的尺寸;
  • 那么输出的最后一个维度的大小将按比例缩放;
  • 比如:如果dtype的单元尺寸两倍于原始dtype的单元尺寸;
  • 那么原始张量中的最后一个维度中的单元,两两一组进行合并;
  • 新张量的最后一个维度的尺寸将会是原始张量的最后一个维度的一半;
  • 如果新的张量的dtype单元尺寸是原始张量的dtype单元尺寸的一半;
  • 那么原始张量中的最后一个维度将一分为2;
  • 新张量的最后一个维度的尺寸将会使原始张量最后一个维度的2倍;
  • 以上实例描述可能得话,必须满足以下条件:
  • self.dim()必须大于0;
  • self.stride(-1)必须为1;
  • 还有,如果dtype的单元尺寸大于原始张量的dtype的尺寸,以下条件必须同样满足:
  • self.size(-1)必须是对dtype单元尺寸的比率可整除的;
  • self.storage_offset()必须是对dtype单元尺寸的比率可整除的;
  • 所有维度的步长,除了最后一个维度外,必须是对dtype单元尺寸的比率可整除的;
  • 如果以上条件任一不满足,将会出错;
  • torchscript不支持上述描述的这种重载,在torchscript中使用将会引起未定义的错误;

参数

  • dtype(torch.dtype)---要求的dtype类型

实例

import torchx=torch.randn(4,4)
x
#tensor([[ 0.9482, -0.0310,  1.4999, -0.5316],
#       [-0.1520,  0.7472,  0.5617, -0.8649],
#       [-2.4724, -0.0334, -0.2976, -0.8499],
#       [-0.2109,  1.9913, -0.9607, -0.6123]])
x.dtype
#torch.float32y=x.view(torch.int32)
y
# tensor([[ 1064483442, -1124191867,  1069546515, -1089989247],
#         [-1105482831,  1061112040,  1057999968, -1084397505],
#         [-1071760287, -1123489973, -1097310419, -1084649136],
#         [-1101533110,  1073668768, -1082790149, -1088634448]],
#     dtype=torch.int32)
y[0,0]=1000000000
x
# tensor([[ 0.0047, -0.0310,  1.4999, -0.5316],
#         [-0.1520,  0.7472,  0.5617, -0.8649],
#         [-2.4724, -0.0334, -0.2976, -0.8499],
#         [-0.2109,  1.9913, -0.9607, -0.6123]])
x.view(torch.cfloat)
# tensor([[ 0.0047-0.0310j,  1.4999-0.5316j],
#         [-0.1520+0.7472j,  0.5617-0.8649j],
#         [-2.4724-0.0334j, -0.2976-0.8499j],
#         [-0.2109+1.9913j, -0.9607-0.6123j]])
x.view(torch.cfloat).size()
#torch.Size([4,2])
x.view(torch.uint8)
# tensor([[  0, 202, 154,  59, 182, 243, 253, 188, 185, 252, 191,  63, 240,  22,
#            8, 191],
#         [227, 165,  27, 190, 128,  72,  63,  63, 146, 203,  15,  63,  22, 106,
#           93, 191],
#         [205,  59,  30, 192, 112, 206,   8, 189,   7,  95, 152, 190,  12, 147,
#           89, 191],
#         [ 43, 246,  87, 190, 235, 226, 254,  63, 111, 240, 117, 191, 177, 191,
#           28, 191]], dtype=torch.uint8)
x.view(torch.uint8).size()
#torch.Size([4,16])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2805418.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

2024Node.js零基础教程(小白友好型),nodejs新手到高手,(八)NodeJS入门——http模块

一念心清净,处处莲花开。 055_http模块_网页资源加载基本过程 哈喽,大家好,这一课节我们来介绍一下网页资源加载的基本过程。首先先强调一点,这个内容对于我们后续学习非常非常的关键,所以大家务必要将其掌握。 首先先…

llm的inference(一)

文章目录 前提LLMLLM结构1.Encoder-only2.Encoder-Decoder3.Decoder-only 宏观层面的LLM推理过程宏观推理过程的进一步详细说明从字符串输入到网络的输出 总结参考链接 前提 对LLM(大语言模型)的推理不太清楚,自己把遇到的和推理相关的知识做个总结,如有…

Autoencoder深度学习中的无监督学习神经网络

在当今的深度学习领域中,自动编码器(Autoencoder)是一种常见的无监督学习神经网络模型,用于学习有效的数据表示。自动编码器在许多领域都有广泛的应用,包括特征提取、降维、图像去噪、生成模型等。 自动编码器的基本原…

Servlet使用Cookie和Session

一、会话技术 当用户访问web应用时,在许多情况下,web服务器必须能够跟踪用户的状态。比如许多用户在购物网站上购物,Web服务器为每个用户配置了虚拟的购物车。当某个用户请求将一件商品放入购物车时,web服务器必须根据发出请求的…

Danswer-开源统一搜索,用AI与您的文档聊天

简介 Danswer允许您以自然语言提问并根据您团队的特定文档获取答案。如果 ChatGPT 能够访问您团队的独特知识。连接到所有常见的工作场所工具,例如 Slack、Google Drive、Confluence 等。 优势 加快客户支持和升级时间。通过使文档和代码变更日志易于查找来提高工…

openGauss学习笔记-228 openGauss性能调优-系统调优-LLVM使用建议

文章目录 openGauss学习笔记-228 openGauss性能调优-系统调优-LLVM使用建议 openGauss学习笔记-228 openGauss性能调优-系统调优-LLVM使用建议 目前LLVM在数据库内核侧已默认打开,用户可结合上述的分析进行配置,总体建议如下: 设置合理的wor…

谷歌搜索引擎关键词优化,竞价排名怎么做?大舍传媒

公司 大舍传媒成立于2005年,并从那时开始专注于谷歌搜索引擎优化(SEO)。如今,我们已经拥有了十八年的海外数字营销经验。我们为全球数千个国际知名品牌客户提供服务,是一家专注于技术的公司。 谷歌排名成果 在谷歌&…

Python读取.nc数据并提取指定时间、经纬度维度对应的变量数值

本文介绍基于Python语言的netCDF4库,读取.nc格式的数据文件,并提取指定维(时间、经度与纬度)下的变量数据的方法。 我们之前介绍过.nc格式的数据,其是NetCDF(Network Common Data Form)文件的扩…

完全增量式PID应用介绍(详细框图算法分析)

PID系列算法和代码可以订阅PID专栏查看更多应用介绍,常用链接如下: 1、增量式PID的抗扰 https://rxxw-control.blog.csdn.net/article/details/136253663https://rxxw-control.blog.csdn.net/article/details/1362536632、线性化功能块S_RTR https://rxxw-control.blog.cs…

普中51单片机学习(红外通信)

红外通信 红外线系统的组成 外线遥控器已被广泛使用在各种类型的家电产品上,它的出现给使用电器提供了很多的便利。红外线系统一般由红外发射装置和红外接收设备两大部分组成。红外发射装置又可由键盘电路、红外编码芯片、电源和红外发射电路组成。红外接收设备可由…

数学家的趣闻轶事65则

目录 前言趣闻轶事65则参考文献 前言 有人的地方就有江湖,有江湖的地方就有故事。数学本身就是一个江湖,这个江湖也充满着血雨腥风和侠骨柔情,至今流传着各种各样的传说,其中不乏”马踏江湖潇潇事“,也有"何当共…

【openGL教程08】关于着色器(02)

LearnOpenGL - Shaders 一、说明 着色器是openGL渲染的重要内容,客户如果想自我实现渲染灵活性,可以用着色器进行编程,这种程序小脚本被传送到GPU的显卡内部,起到动态灵活的着色作用。 二、着色器简述 正如“Hello Triangle”一章…

【JavaEE】_tomcat的安装与使用

目录 1. Tomcat简介 2. Tomcat安装 2.1 下载Tomcat并解压缩 2.2 启动Tomcat 2.2.1 Tomcat乱码问题 2.2.2 Tomcat闪退问题 2.3 访问Tomcat欢迎页面 3. 使用Tomcat部署前端代码 3.1 路径匹配 3.2 文件路径访问与网络访问 4. 静态页面与动态页面 5. 基于tomcat的网站后…

如何成交国外大客户拿下大单?

点线面 作为外贸人,很多人都会感慨,拿下客户订单不容易,拿下大客户的大订单更不容易,因为大客户的采购必须顾及更多因素和风险。 这就要求我们在面对大客户时,必须综合点、线、面相结合为切入点,充分挖掘…

互联网加竞赛 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 🔥 优质竞赛项目系列&#x…

iOS调用系统已安装地图及内置地图实现

info.plist要添加scheme: 1.地图列表: NSArray *mapKeys=[[NSArray alloc] initWithObjects:@"com.autonavi.minimap",@"com.baidu.BaiduMap",@"com.google.android.apps.maps",@"com.tencent.map", nil]; NSArray *mapSchemes=[[NS…

深度学习基础(二)卷积神经网络(CNN)

之前的章节我们初步介绍了深度学习相关基础知识和训练神经网络: 深度学习基础(一)神经网络基本原理-CSDN博客文章浏览阅读924次,点赞13次,收藏19次。在如今的科技浪潮中,神经网络作为人工智能的核心技术之…

HMI界面:是工业自动化的“窗口”,大有用武之地。

Hello,我是大千UI工场,本期分享HMI人机交互界面在工业自动化领域的应用,关注大千,学习N多UI干货,有设计需求,我们也可以接单。 HMI(Human Machine Interface,人机界面)在…

java: warning: source release 11 requires target release 11 解决办法

遇到问题 运行项目时报如下错 java: warning: source release 11 requires target release 11 原因:创建项目的时候选择的java11版本,现在用java8版本运行就会报这个错 查看项目的iml文件中LANGUAGE_LEVEL“JDK_xx”是多少 .iml 文件是 IntelliJ ID…

JAVA工程师面试专题-Mysql篇

一、基础 1、mysql可以使用多少列创建索引? 16 2、mysql常用的存储引擎有哪些 存储引擎Storage engine:MySQL中的数据、索引以及其他对象是如何存储的,是一套文件系统的实现。常用的存储引擎有以下: Innodb引擎:In…