在看许多pytorch的代码时,为了计算上的方便,通常会用到unsqueeze函数,一直不得要领,这次专门去做个实验学习一下。

官方文档对这个函数描述如下,就是在指定的位置插入一个维度,有两个参数,input是输入的tensor,dim是要插到的维度

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

下面使用一个二维矩阵看下dim不同时呈现出的效果:

# 创建一个3*4的全1二维tensor
a = torch.ones(3,4)
'''
运行结果
tensor([[1., 1., 1., 1.],[1., 1., 1., 1.],[1., 1., 1., 1.]])
'''

在0维度上插入一个维度,可以看到现在a的形状变为[1, 3, 4],第0维度的大小默认是1

a = a.unsqueeze(0)
print(a.shape)
'''
运行结果
tensor([[[1., 1., 1., 1.],[1., 1., 1., 1.],[1., 1., 1., 1.]]])torch.Size([1, 3, 4])
'''

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

a = a.unsqueeze(a.dim())
print(a.shape)
'''
运行结果
tensor([[[1.],[1.],[1.],[1.]],[[1.],[1.],[1.],[1.]],[[1.],[1.],[1.],[1.]]])torch.Size([3, 4, 1])
'''

pytorch函数unsqueeze函数的理解相关推荐

  1. pytorch中unsqueeze()函数理解

    unsqueeze()函数起升维的作用,参数表示在哪个地方加一个维度. 在第一个维度(中括号)的每个元素加中括号 0表示在张量最外层加一个中括号变成第一维. 直接看例子: import torch i ...

  2. 【Pytorch】unsqueeze() 方法

    文章目录 一.unsqueeze() 方法 二.实例 参考链接 一.unsqueeze() 方法 unsqueeze() 方法起升维的作用,参数表示在哪个地方加一个维度. 二.实例 import to ...

  3. Python-squeeze()、unsqueeze()函数的理解

    目录 1. 降维torch.squeeze(input, dim=None, out=None) 简单示例 matplotlib画图示例 2.增维 torch.unsqueeze(input, dim ...

  4. python中squeeze函数_详解pytorch中squeeze()和unsqueeze()函数介绍

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  5. pytorch中repeat()函数理解

    pytorch中repeat()函数理解 最近在学习过程中遇到了repeat()函数的使用,这里记录一下自己对这个函数的理解. 情况1:repeat参数个数与tensor维数一致时 a = torch ...

  6. pytorch 中 contiguous() 函数理解

    pytorch 中 contiguous() 函数理解 文章目录 pytorch 中 contiguous() 函数理解 引言 使用 contiguous() 后记 文章抄自 Pytorch中cont ...

  7. pytorch 中 squeeze 和unsqueeze函数

    1. torch.squeeze() 函数 : 作用:移除指定或所有维数为1的维度,从而得到维度减少的张量 解释一下: x=torch.zeros(5,1,1,1)print(x)'输出' tenso ...

  8. pytorch中tensor的unsqueeze()函数和squeeze()函数的用处

    unsqueeze()用于增加一个维度. 先假设有如下一维的Tensor. a=torch.Tensor([1,2]) print(a.shape) 假设我们现在有一个2*2的矩阵b,要与a相乘,最规 ...

  9. pytorch中unsqueeze()和squeeze()函数

    一.unsqueeze()函数 unsqueeze(arg)与squeeze(arg)作用相反,表示在第arg维增加一个维度值为1的维度. 1. 首先初始化一个a 可以看出a的维度为(2,3) 2. ...

最新文章

  1. Exchange 2013学习(二),关于约会、会议和事件
  2. BeanFactory笔记
  3. u盘安装linux双系统6,用U盘安装Centos6.5 + Win7 双系统
  4. 进制转换,字符串,字节串之间转换
  5. CentOS 7 : Docker私有仓库搭建和使用
  6. linux 磁盘分区对齐,linux查看硬盘4K对齐方法
  7. c语言案例游戏,C语言实现五子棋游戏的案例
  8. centos7 docker安装_Centos7 安装 Docker
  9. JS使用闭包保护变量,防止污染
  10. 基于ssh的多节点之间互信通信的实现
  11. 如何用 Python 拆分表格并发送邮件?
  12. 说说从URL输入到页面展现的过程
  13. liunx安装Lamp
  14. Django中ORM常用字段及字段参数
  15. C# 实现国密SM4加解密封装
  16. Word2Vec模型训练简洁步骤
  17. C语言 商业贷款计算器 等额本金 等额本息
  18. 多商户商城系统功能拆解14讲-平台端会员等级
  19. 开发人员和产品人员对接需求总结
  20. nds linux模拟器下载,NDS模拟器

热门文章

  1. Ubuntu配置|添加拥塞控制算法到Linux内核
  2. mysql几种常用的方法
  3. python捕获异常 程序退出_python3退出程序sys.exit()方法
  4. 微信小程序,安全性有多高?黑客能盗走你的红包吗
  5. VMware Network Adapter VMnet8 没有有效的 IP 配置
  6. Docker 安装及配置
  7. python-flask框架-mysql-月新增用户数、当月活跃用户数等的查询及返回数据的逻辑
  8. Mac 下解决键盘和触摸板失灵
  9. lmx2592频率源原理图和程序源码
  10. 2010实用火狐浏览器插件总结