PyTorch中squeeze()和unsqueeze()函数理解

2023-11-04

squeeze(arg)
表示若第arg维的维度值为1,则去掉该维度,否则tensor不变。(即若tensor.shape()[arg] == 1,则去掉该维度)
例如:
一个维度为2x1x2x1x2的tensor,不用去想它长什么样儿,squeeze(0)就是不变,squeeze(1)就是变成2x2x1x2。(0是从最左边的维度算起的)

>>> x = torch.zeros(2, 1, 2, 1, 2)
>>> x.size()
torch.Size([2, 1, 2, 1, 2])
>>> y = torch.squeeze(x)
>>> y.size()
torch.Size([2, 2, 2])
>>> y = torch.squeeze(x, 0)
>>> y.size()
torch.Size([2, 1, 2, 1, 2])
>>> y = torch.squeeze(x, 1)
>>> y.size()
torch.Size([2, 2, 1, 2])

unsqueeze(arg)
与squeeze(arg)函数作用相反,表示在第arg维增加一个维度为1的维度。
啥意思呢?
比如一个tensor的shape为3x3,那么unsqueeze(0)就是变成1x3x3,unsqueeze(1)就是变成3x1x3.
再如下面这个官方的例子,得看好几眼才能看明白怎么回事。
其实可以这样理解:x的shape为:4,unsqueeze(0)就是把shape变成1x4;unsqueeze(1)就是把shape变成4x1。

>>> x = torch.tensor([1, 2, 3, 4])
>>> torch.unsqueeze(x, 0)
tensor([[ 1,  2,  3,  4]])
>>> torch.unsqueeze(x, 1)
tensor([[ 1],
        [ 2],
        [ 3],
        [ 4]])

参考:
[1] https://pytorch.org/docs/1.11/generated/torch.unsqueeze.html#torch.unsqueeze
[2] https://www.cnblogs.com/sbj123456789/p/9231571.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyTorch中squeeze()和unsqueeze()函数理解 的相关文章

  • Spark 请求最大计数

    我是 Spark 的初学者 我尝试请求允许我检索最常访问的网页 我的要求如下 mostPopularWebPageDF logDF groupBy webPage agg functions count webPage alias cntW
  • Python中Decimal类型的澄清

    每个人都知道 或者至少 每个程序员都应该知道 http docs oracle com cd E19957 01 806 3568 ncg goldberg html 即使用float类型可能会导致精度错误 然而 在某些情况下 精确的解决方
  • 如何正确地将 MIDI 刻度转换为毫秒?

    我正在尝试将 MIDI 刻度 增量时间转换为毫秒 并且已经找到了一些有用的资源 MIDI Delta 时间刻度到秒 http www lastrayofhope co uk 2009 12 23 midi delta time ticks
  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • 如何创建一个语句来打印以特定单词开头的单词? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 python 中打印从特定字母开始的单词 而不使用函数 而是使用方法或循环 1 我有一个字符串 想要打印以 m 开头的单词 S
  • 如何计算numpy数组中元素的频率?

    我有一个 3 D numpy 数组 其中包含重复的元素 counterTraj shape 13530 1 1 例如 counterTraj 包含这样的元素 我只显示了几个元素 array 136 129 130 103 102 101 我
  • 以同步方式使用 FastAPI,如何获取 POST 请求的原始正文?

    在中使用 FastAPIsync not async模式 我希望能够接收 POST 请求的原始 未更改的正文 我能找到的所有例子都显示async代码 当我以正常同步方式尝试时 request body 显示为协程对象 当我通过发布一些内容来
  • TensorFlow的./configure在哪里以及如何启用GPU支持?

    在我的 Ubuntu 上安装 TensorFlow 时 我想将 GPU 与 CUDA 结合使用 但我却停在了这一步官方教程 http www tensorflow org get started os setup md 这到底是哪里 con
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • 将 JSON 对象传递给带有请求的 url

    所以 我想利用 Kenneth 的优秀请求模块 https github com kennethreitz requests 在尝试使用时偶然发现了这个问题自由库API http wiki freebase com wiki API 基本上
  • 在 pytube3 中获取 youtube 视频的标题?

    我正在尝试构建一个应用程序来使用 python 下载 YouTube 视频pytube3 但我无法检索视频的标题 这是我的代码 from pytube import YouTube yt YouTube link print yt titl
  • Pandas 根据 diff 列形成簇

    我正在尝试使用 Pandas 根据表示时间 以秒为单位 的列中的差异来消除数据框中的一些接近重复项 例如 import pandas as pd numpy as np df pd DataFrame 1200 1201 1233 1555
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • python Soap zeep模块获取结果

    我从 SOAP API 得到如下结果 client zeep Client wsdl self wsdl transport transport auth header lb E authenticate self login res cl
  • 创建嵌套字典单行

    您好 我有三个列表 我想使用一行创建一个三级嵌套字典 i e l1 a b l2 1 2 3 l3 d e 我想创建以下嵌套字典 nd a 1 d 0 e 0 2 d 0 e 0 3 d 0 e 0 b a 1 d 0 e 0 2 d 0
  • 字典和数组作为类变量与实例变量

    这是赚取积分的简单方法 请解释以下内容 class C a b 0 c def init self self x def d self k v self x k v self a k v self b v self c append v d
  • 如何读取Python字节码?

    我很难理解 Python 的字节码及其dis module import dis def func x 1 dis dis func 上述代码在解释器中输入时会产生以下输出 0 LOAD CONST 1 1 3 STORE FAST 0 x
  • 从 Twitter API 2.0 获取 user.fields 时出现问题

    我想从 Twitter API 2 0 端点加载推文 并尝试获取标准字段 作者 文本 和一些扩展字段 尤其是 用户 字段 端点和参数的定义工作没有错误 在生成的 json 中 我只找到标准字段 但没有找到所需的 user fields 用户
  • 迭代 pandas 数据框的最快方法?

    如何运行数据框并仅返回满足特定条件的行 必须在之前的行和列上测试此条件 例如 1 2 3 4 1 1 1999 4 2 4 5 1 2 1999 5 2 3 3 1 3 1999 5 2 3 8 1 4 1999 6 4 2 6 1 5 1
  • Scrapy Spider不存储状态(持久状态)

    您好 有一个基本的蜘蛛 可以运行以获取给定域上的所有链接 我想确保它保持其状态 以便它可以从离开的位置恢复 我已按照给定的网址进行操作http doc scrapy org en latest topics jobs html http d

随机推荐

  • 安卓数据线ssh连树莓派(超简单)

    无需联网 无需无限网卡 树莓派 sudo vim etc network interfaces 添加或修改这句iface usb0 inet dhcp 然后手机数据线插上树莓派 开启usb网络共享 用better terminal或者ter
  • 记录一个std::future和std::async的demo

    Demo和代码简述 子线程函数 参数a传进去模拟遇到的带参数问题 函数的返回值可以是处理完的任意值 若有返回值则get 到的就是返回值 比如这个demo里get到的就是3 int TestNoClass int a int main int
  • LFSR

    c语言中实现LFSR define CRT SECURE NO WARNINGS include
  • 同步式SPWM两电平正弦脉宽调制逆变器(全波三角波)——正弦波为调制波(双重傅里叶分析)

    SPWM正弦脉宽调制介绍 SPWM是调制波为正弦波 载波为三角波或锯齿波的一种脉宽调制法 特点 原理简单 通用性强 控制和调节性能好 具有先出谐波 调节和稳定输出电压的多种作用 是一种比较好的波形改善法 分类 分为两阶式和三阶式两种 阶 指
  • S3C2440读写sd卡的一些总结

    整理硬盘的时候发现这个文档 以前写2440操作sd卡程序的时候总结的 1 我的2440 sdi对sd卡发送ACMD41时总是反馈crc fail 但是可以得到正确的response sd卡可以正常使用 2 sd卡可以没有mbr 在物理的 0
  • 推理规则的具体应用

    小伙伴们 大家好呀 相信步入大二的同学们肯定会学到离散数学 而推理规则是离散数学中最fundmental and important 的知识体系 今天我们来说说基本的推理规则 Firstly 推理 inference rules 是 前提
  • hibernate--lazy(懒加载)属性

    关联映射文件中
  • 线性表之单链表

    include stdafx h include
  • WebRTC学习(二)Windows10平台WebRTC编译(VS2017)

    1 Visual Studio 2017安装 WebRTC用到了很多C 最新特性 所以编译最新WebRTC代码VS要求为2017 gt 15 7 2 版本 2 安装SDK调试工具 由于最新WebRTC源码要求10 0 18362及以上Win
  • wordpress线上部署&更新主题

    目录 新增主题 主题介绍 部署到线上 更新主题 新增主题 随便复制一个主题到test文件夹 test主题文件cnpm I npm i 失败的可以使用淘宝镜像 cpm i 热更新 主题介绍 test目录下的style css Theme Na
  • 论文笔记:LightGCL: Simple Yet Effective Graph Contrastive Learning for Recommendation

    ICLR 2023 1 intro GNN在基于图的推荐系统中展现了良好的效果 这得益于其整合相邻结点信息以进行协同过滤的能力 在用户 物品交互图上进行多层的信息传递 以此挖掘高阶的连接信息 很大一部分基于 GNN 的协同过滤模型采用了监督
  • vue跨域处理(vue项目中baseUrl设置问题)

    一 方法一 在公用文件common js中设置baseUrl export var baseUrl process env NODE ENV production window g ApiUrl api 该方法的优点 在项目打包时 stat
  • jvm关闭

    关闭方式 正常关闭 最后一个普通线程 非守护线程 结束 调用了System exit 发送SIGINT信号 相当于不带参数的kill命令 或者键入Ctrl C 强制关闭 调用Runtime halt 发送SIGKILL信号 kill 9 命
  • 认证鉴权与API权限控制在微服务架构中的设计与实现(一)

    引言 本文系 认证鉴权与API权限控制在微服务架构中的设计与实现 系列的第一篇 本系列预计四篇文章讲解微服务下的认证鉴权与API权限控制的实现 1 背景 最近在做权限相关服务的开发 在系统微服务化后 原有的单体应用是基于Session的安全
  • JavaScript中的backgroundPosition的设置

    在CSS中background position有对值的设置有两种 一是用数值 绝对的 另一个使用百分比 相对的 这两种方式会有不同的浏览器兼容问题 主要是IE和FF 基本代码如下 style overflow y scroll heigh
  • 从RPA+AI到IPA,RPA是如何进化的?

    随着RPA 机器人流程自动化 的深入发展 如今对于该技术今后的走向业内也形成了共识 那就是RPA不能 独行 一定要加个 伴儿 至于加 谁 则见仁见智 比较常见的则是加AI 人工智能 RPA AI 其实并不是件新鲜事 我们将时间拨回到5年前
  • Windbg分析高内存占用问题

    打Dump 远程客户应用服务器 32G内存占用已经消耗了78 而现场已经反馈收银系统接近奔溃了 要求先强制回收内存 反正也要奔溃了 先打Dump再说吧 PS 打Dump会挂起进程 导致应用无法响应 而打Dump的耗时 也是根据当时进程的内存
  • 循环打印数字文件名

    循环打印以顺序数字为标识 且格式为 0 的文件名 for s in range 10 a f train id s 03 tif print a train004 tif train005 tif train006 tif train007
  • 基于接口设计原则-java

    7种设计坏味道 1 僵化性 很难对系统进行改动 因为每个改动都会迫使许多对系统其他部分的其它改动 2 脆弱性 对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题 3 牢固性 很难解开系统的纠结 使之成为一些可在其他系统中重用
  • PyTorch中squeeze()和unsqueeze()函数理解

    squeeze arg 表示若第arg维的维度值为1 则去掉该维度 否则tensor不变 即若tensor shape arg 1 则去掉该维度 例如 一个维度为2x1x2x1x2的tensor 不用去想它长什么样儿 squeeze 0 就