pytorch中unsqueeze用法说明

在指定的位置插入一个维度,有两个参数,input是输入的tensor,dim是要插到的维度

需要注意的是dim的范围是[-input.dim()-1, input.dim()+1),是一个左闭右开的区间,当dim为负值时,会自动转换为dim = dim+input.dim()+1,类似于使用负数对python列表进行切片。

import torcha = torch.randn(2,5)
print(a)print("")
b = a.unsqueeze(0)
print(b.shape)print("")
c = a.unsqueeze(a.dim())
print(c.shape)输出:
tensor([[-0.4734,  0.4115, -0.9415, -1.1280, -0.1065],[ 0.1613,  1.2594,  1.1261,  1.3881,  0.1112]])torch.Size([1, 2, 5])torch.Size([2, 5, 1])

以上是二维数据情况:

首先生成了一个二维矩阵,其大小为[2,5]

然后,在0维度上插入一个维度,可以看到现在新矩阵a的形状变为[1,2,5],第0维度的大小默认是1

最后,在最后一个维度上插入一个维度,形状变为[2, 5, 1]

a=torch.rand(2,3,2)print("")
print("torch.unsqueeze(a,3) size: {}".format(torch.unsqueeze(a,3).size()))print("")
print("torch.unsqueeze(a,2) size: {}".format(torch.unsqueeze(a,2).size()))print("")
print("torch.unsqueeze(a,1) size: {}".format(torch.unsqueeze(a,1).size()))print("")
print("torch.unsqueeze(a,0) size: {}".format(torch.unsqueeze(a,0).size()))print("")
print("torch.unsqueeze(a,-1) size: {}".format(torch.unsqueeze(a,-1).size()))print("")
print("torch.unsqueeze(a,-2) size: {}".format(torch.unsqueeze(a,-2).size()))print("")
print("torch.unsqueeze(a,-3) size: {}".format(torch.unsqueeze(a,-3).size()))print("")
print("torch.unsqueeze(a,-4) size: {}".format(torch.unsqueeze(a,-4).size()))输出:
torch.unsqueeze(a,3) size: torch.Size([2, 3, 2, 1])torch.unsqueeze(a,2) size: torch.Size([2, 3, 1, 2])torch.unsqueeze(a,1) size: torch.Size([2, 1, 3, 2])torch.unsqueeze(a,0) size: torch.Size([1, 2, 3, 2])torch.unsqueeze(a,-1) size: torch.Size([2, 3, 2, 1])torch.unsqueeze(a,-2) size: torch.Size([2, 3, 1, 2])torch.unsqueeze(a,-3) size: torch.Size([2, 1, 3, 2])torch.unsqueeze(a,-4) size: torch.Size([1, 2, 3, 2])

对于三维数据input.dim() = 3,因此dim的范围是[-4, 4)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

书生·浦语大模型全链路开源体系-第4课

书生浦语大模型全链路开源体系-第4课 书生浦语大模型全链路开源体系-第4课相关资源XTuner 微调 LLMXTuner 微调小助手认知环境安装前期准备启动微调模型格式转换模型合并微调结果验证 将认知助手上传至OpenXLab将认知助手应用部署到OpenXLab使用XTuner微调多模态LLM前期准备启动…

Mac电脑上有什么好玩的格斗游戏 《真人快打1》可以在苹果电脑上玩吗

你是不是喜欢玩格斗游戏?你是不是想在你的Mac电脑上体验一些刺激和激烈的对战?在这篇文章中,我们将介绍Mac电脑上有什么好玩的格斗游戏,以及《真人快打1》可以在苹果电脑上玩吗。 一、Mac电脑上有什么好玩的格斗游戏 格斗游戏是…

命令模式

命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 命令模式的好处: 1、它能较容易地设计一个命令队列; 2、在需要的情况下&a…

gpt-6有望成为通用工具

OpenAI CEO山姆奥特曼(Sam Altman)在最新的博客访谈中,提到gpt-6有望成为通用工具。 奥特曼还认为,目前的模型不够聪明,“使用GPT-2进行科学研究曾被认为是不切实际的想法。而如今,虽然人们使用GPT-4进行科…

获取公募基金净值【数据分析系列博文】

摘要 从指定网址获取公募基金净值数据,快速解析并存储数据。 (该博文针对自由学习者获取数据;而在投顾、基金、证券等公司,通常有Wind、聚源、通联等厂商采购的数据) 导入所需的库:代码导入了一些常用的库…

OpenCV从入门到精通实战(八)——基于dlib的人脸关键点定位

本文使用Python库dlib和OpenCV来实现面部特征点的检测和标注。 下面是代码的主要步骤和相关的代码片段: 步骤一:导入必要的库和设置参数 首先,代码导入了必要的Python库,并通过argparse设置了输入图像和面部标记预测器的参数。…

ns3.36以后的版本中_ns3命令的原理_CMAKE的使用以及一些例子

本文主要来自于ns3的官方文档:4.3. Working with CMake — Manual,不过只包含以下部分: 4.3. 使用CMake 4.3.1. 配置项目 4.3.1.1. 使用ns3配置项目 4.3.1.2. 使用CMake配置项目 4.3.2. 手动刷新CMake缓存 4.3.3. 建设项目 4.3.3.1. 使用ns3…

生活中的洪特规则

不知道你还记不记得高中物理所学的一个奇特的物理规则:洪特规则。 洪特规则是德国人弗里德里希洪特(F.Hund)根据大量光谱实验数据总结出的一个规律,它指出电子分布到能量简并的原子轨道时,优先以自旋相同的方式分别占…

企业网站制作如何被百度收录

1、网站在百度中的整体评分 说俗点就是网站的权重,在优化过程中我们会见到很多网站出现秒收的情况,发布的文章几分钟就可以收录,这个通过SITE语法都可以去查询,那么这跟自己的网站权重以及内容更新习惯是有非常重要的关联。 我们…

【函数式接口使用✈️✈️】通过具体的例子实现函数结合策略模式的使用

目录 前言 一、核心函数式接口 1. Consumer 2. Supplier 3. Function,> 二、场景模拟 1.面向对象设计 2. 策略接口实现(以 Function 接口作为策略) 三、对比 前言 在 Java 8 中引入了Stream API 新特性,这使得函数式编程风格进…

【IoTDB 线上小课 02】开源增益的大厂研发岗面经

还有友友不知道我们的【IoTDB 视频小课】系列吗? 关于 IoTDB,关于物联网,关于时序数据库,关于开源...给我们 5 分钟,持续学习,干货满满~ 5分钟学会 大厂研发岗面试 之前的第一期小课,我们听了 I…

1.总结串口的发送和接收功能使用到的函数2.总结DMA的作用,和DMA+空闲中断的使用方式3.使用PWM+ADC光敏电阻完成光控灯的实验

1.总结串口的发送和接收功能使用到的函数 串口发送函数:HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout) UART_HandleTypeDef *huart:指定要使用的串口 const uint8_t *pData&…

爬虫入门——Request请求

目录 前言 一、Requests是什么? 二、使用步骤 1.引入库 2.请求 3.响应 三.总结 前言 上一篇爬虫我们已经提及到了urllib库的使用,为了方便大家的使用过程,这里为大家介绍新的库来实现请求获取响应的库。 一、Requests是什么&#xff1…

如何确保美国站群服务器的安全性?

选择服务器安全性很重要,那么如何确保美国站群服务器的安全性,rak部落小编为您整理发布如何确保美国站群服务器的安全性。 确保美国站群服务器的安全性,您可以采取以下措施: - **定期更新和升级**:保持服务器操作系统和…

基于Python大数据的微博舆情分析,微博评论情感分析可视化系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

PCB Editor简单使用

先在OrCAD软件 导出画好的图: 去PCBEditor软件: 画版图框框: 可以手动画也可以代码画,前提是使用line的操作。 命令画 x 0 0 x 1000 0 x 1000 1000 X 0 1000 X 0 0 就可以了 显示格点 修改格点: 导入…

transformer上手(9)—— 翻译任务

运用 Transformers 库来完成翻译任务。翻译是典型的序列到序列 (sequence-to-sequence, Seq2Seq) 任务,即对于每一个输入序列都会输出一个对应的序列。翻译在任务形式上与许多其他任务很接近,例如: 文本摘要 (Summarization):将长…

短视频素材在哪里找?8个视频素材免费网站大全

在当下这个视频内容越发重要的时代,获取多样化且高质量的视频素材对于提升任何视频项目的吸引力至关重要。为了帮助你探索更广阔的创意领域,这里有一系列精选的无水印视频素材网站,它们各具特色,能够为你的创作带来新的视觉体验和…

C++ 并发编程指南(11)原子操作 | 11.5、内存模型

文章目录 一、C 内存模型1、为什么需要内存模型? 前言 C 11标准中最重要的特性之一,是大多数程序员都不会关注的东西。它并不是新的语法特性,也不是新的类库功能,而是新的多线程感知内存模型。本文介绍的内存模型是指多线程编程方…

TLS v1.3 导致JetBrains IDE jdk.internal.net.http.common CPU占用高

开发环境 GoLand版本:2022.3.4 问题原因 JDK 中的 TLS v1.3 实现引起 解决办法 使用 SOCKS 代理代替HTTP代理 禁用 Space 和 Code With Me 插件 禁用 TLS v1.3,参考:https://stackoverflow.com/questions/54485755/java-11-httpclient-…