python以三维tensor为例理解unsqueeze和squeeze函数

一、建立一个二维tensor

import torch as t
a = t.arange(0,6)
b = a.view(2,3)
print(b)

二、对上步建立的二维tensor使用unsqueeze(x)函数操作(x若是正数表示在第x维上增加一维,若是负数表示在倒数第x维上增加一维,注意tensor维度的下标从0开始,倒数下标从-1开始,并且此增加维的维度为1)

2.1 x为正数

import torch as t
a = t.arange(0,6)
b = a.view(2,3)
print(b.size())
b = t.unsqueeze(b,1) # unsqueeze函数操作,在第一维上增加“1”
print(b.size())

2.2 x为负数

import torch as t
a = t.arange(0,6)
b = a.view(2,3)
print(b.size())
b = t.unsqueeze(b,-1) # unsqueeze函数操作,在倒数第一维上增加“1”
print(b.size())

三、对第一步建立的二维tensor使用squeeze(x)函数操作(x若为正数表示压缩第x维的“1”,若是负数表示压缩倒数第x维的“1”,若为null则压缩所有维的“1”,若第x维的维度不为“1”就无变化不能压缩,注意tensor维度的下标从0开始,倒数下标从-1开始)

3.1 x为正数

import torch as t
a = t.arange(0,6)
b = a.view(1,1,2,3,1)
print(b.size())
b = t.squeeze(b,1) # squeeze函数操作,在压缩第一维的“1”
print(b.size())

3.2 x为负数

import torch as t
a = t.arange(0,6)
b = a.view(1,1,2,3,1)
print(b.size())
b = t.squeeze(b,-1) # squeeze函数操作,压缩倒数第一维的“1”
print(b.size())

3.3 x为null(空)

import torch as t
a = t.arange(0,6)
b = a.view(1,1,2,3,1)
print(b.size())
b = t.squeeze(b) # squeeze函数操作,压缩所有维度为“1”的维
print(b.size())

3.4 x维的维度不等于“1”

import torch as t
a = t.arange(0,6)
b = a.view(1,1,2,3,1)
print(b.size())
b = t.squeeze(b,3) # squeeze函数操作,第3维的维度是“3”,不是“1”,所以不能压缩无变化
print(b.size())

四、多维具体理解分析(以三维为例)

4.1 二维变成三维的代码

import torch as t
a = t.arange(0,6)
b = a.view(3,2)
print(b)
b = t.unsqueeze(b,1)
print(b)

4.2 代码运行输出结果

4.3 结果理解分析

tensor([[0, 1],[2, 3],[4, 5]])
tensor([[[0, 1]],[[2, 3]],[[4, 5]]])

原本tensor是[3,2]也就是三行两列,在使用unsqueeze函数后增加第一维的维度为“1”,也就变成了[3,1,2]也就是312变成三维tensor,上面的结果对应312的理解是tensor()里面第一层[ ]中有三行,并且用逗号隔开对应“3”,第一层[ [ ] , [ ] , [ ] ]里面的每个分开的[ ]也就是第二层[ ]里面是只有一行,因为只有一行就没有用逗号隔开对应“1”,第二层[ ]里面的[ ]也就是第三层[ ]里面有两列也就是两个元素对应“2”。

4.4 tensor维度的直接显示

import torch as t
a = t.arange(0,6)
b = a.view(3,2)
print(b)
b = t.unsqueeze(b,1)
print(b)
print(b.size()) # 直接输出显示tensor维度,对应下面图片中的红框部分

python以三维tensor为例详细理解unsqueeze和squeeze函数相关推荐

  1. python中的unsqueeze()和squeeze()函数

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接: https://blog.csdn.net/flysky_jay/article/ ...

  2. 如何理解深度学习中的tensor(涉及numpy的二维,三维以及四维数据的理解)

    0. 写作目的 好记性不如烂笔头. 结论:无论几维,都可以按照(Batch_size, Height, Width, Channle)来理解. 1. 二维数据的理解 理解为:只有(Height, Wi ...

  3. python图像三维数组通透理解

    python图像三维数组通透理解 先说结果: 一张图片的颜色是由RGB三个通道构成, 可以把一张图片上的每一个像素点看成一个对象, 这个对象又由RGB三种颜色叠加, 即用一个一维数组表示,假如我们有一 ...

  4. 【时序列】时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 详细理解python sm.tsa.seasonal_decompose

    [时序列]时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 理解python sm.tsa.seasonal_decompose 在做时序列分析 ...

  5. Python:一文让你彻底理解numpy中axis=-1/0/1/2... [实例讲解:np.argmax(axis= -1 0 1 2) np.sum(aixs= -1 0 1 2)]

    前言 接触python有一段时间了,但总有一道坎在心中挥之不去,那就是Numpy模块中的axis=-1/0/1/2...,每每见到axis=-1.axis=0.axis=1.axis=2等操作,心中真 ...

  6. 面向Python开发人员的综合置信区间全面理解

    面向Python开发人员的综合置信区间全面理解 置信区间是以范围表示并汇总统计中的不确定性的.换句话说,这是一系列我们确信自己真正价值所在的价值观.例如:我有95%的信心认为人口平均数在8.76到15 ...

  7. python经典面试题100例 面试宝典

    人生苦短 我用 Python 芝麻开门! python 进阶 1 python 经典面试题 9 python 面试 100 例 21 python 面试题总结 101 python 进阶 1 PEP8 ...

  8. 全网最全Python项目体系练习500例(附源代码),练完可就业

    1.有一个jsonline格式的文件file.txt大小约为10K 2.补充缺失的代码 3.输入日期, 判断这一天是这一年的第几天? 4.打乱一个排好序的list对象alist? 5.现有字典 d= ...

  9. python毕业设计选题推荐100例

    文章目录 0 前言 1 python - 算法类 毕设选题 2 python - 数据挖掘 毕设选题 3 python - 大数据处理.云计算.区块链 毕设选题 4 python - 网络安全 毕设选 ...

最新文章

  1. python如何处理异常_python如何进行异常处理
  2. MAML-Tracker:用目标检测思路做目标跟踪?小样本即可得高准确率丨CVPR 2020
  3. 【建站系列教程】2、数据源
  4. realloc函数引发的慘案
  5. SpringCloud 介绍
  6. SXSSFWorkbook使用——使用excel模板
  7. ie浏览器如何实现scrollto_如何实现报表直接打印需求
  8. 5.2.2 std::atomic_flag的相关操作
  9. VC++开发学习三(对话框之间的信息传递的方法总结)
  10. 于Linux下s、t、i、a权限
  11. 验证计算机能否正确添加到网络,常用的网络测试命令大全
  12. 2020-10-19
  13. c语言编写烟花程序,C语言烟花程序
  14. 有限元分析基本理论问答
  15. 服务器vmware私有云,方案建议-使用VMware架构搭建自己的私有云.pptx
  16. ctfshow菜狗杯webshell wp
  17. perf top 实时分析 CPU 使用情况
  18. 打造高铁WiFi新体验,中兴新支点ICG与高铁强强联手
  19. 概率论考点总结类型27 上侧α分位点
  20. ocilib 使用_LibOciLib使用说明(2017-1-26更新)

热门文章

  1. node.js+uni计算机毕设项目基于微信小程序的健康管理系统(程序+小程序+LW)
  2. C#中的文件导出大全
  3. Java笔记(十一)
  4. mysql server nchar_SQL MS Access、MySQL 和 SQL Server 数据类型 | w3cschool菜鸟教程
  5. 智能电话客服机器人的缺点
  6. 【愚公系列】2023年05月 攻防世界-MOBILE(丛林的秘密)
  7. TFRecord和tf.Example
  8. 生成模型 VS 判别模型 (含义、区别、对应经典算法)
  9. 绘制图形可以使用什么python数据库_python 读取数据库并绘图的实例
  10. dax powerbi 生成表函数_Power BI表连接的几个DAX函数,一次全掌握!