浅析对torch.unsqueeze()函数理解

 更新时间:2024年06月24日 10:56:17   作者:路过不知道  
torch.unsqueeze()函数起到升维的作用,dim等于几表示在第几维度加一,这篇文章主要介绍了对torch.unsqueeze()函数理解深度解析,感兴趣的朋友跟随小编一起看看吧

torch.unsqueeze()函数理解

torch.unsqueeze(input, dim)  使用时等同于  input.unsqueeze(dim)

torch.unsqueeze()函数起到升维的作用,dim等于几表示在第几维度加一,比如原来x的size=([4]),x.unsqueeze(0)之后就变成了size=([1, 4]),而x.unsqueeze(1)之后就变成了size=([4, 1]),注意dim∈[-input.dim() - 1, input.dim() + 1]
例如

输入一维张量,即input.dim()=1

# 输入:
x = torch.tensor([1, 2, 3, 4])  # x.dim()=1
print(x)
print(x.shape)
y = x.unsqueeze(0)
print(y)
print(y.shape)  # 此时y.dim()=2
z = x.unsqueeze(1)
print(z)
print(z.shape)  # 此时z.dim()=2
# 输出:
tensor([1, 2, 3, 4])
torch.Size([4])
tensor([[1, 2, 3, 4]])
torch.Size([1, 4])
tensor([[1],
        [2],
        [3],
        [4]])
torch.Size([4, 1])

输入二维张量,即input.dim()=2

# 输入:
x = torch.tensor([[1, 2, 3], [4, 5, 6]])  # x.dim()=2
print(x)
print(x.shape)
y = x.unsqueeze(0)
print(y)
print(y.shape)  # 此时y.dim()=3
z = x.unsqueeze(1)
print(z)
print(z.shape)  # 此时z.dim()=3
# 输出:
tensor([[1, 2, 3],
        [4, 5, 6]])
torch.Size([2, 3])
tensor([[[1, 2, 3],
         [4, 5, 6]]])
torch.Size([1, 2, 3])
tensor([[[1, 2, 3]],
        [[4, 5, 6]]])
torch.Size([2, 1, 3])

输入四维张量,即input.dim()=4

# 输入:
x = torch.tensor([[[[1, 2, 3], 
                    [4, 5, 6]],
                [[0, 2, 1], 
                 [1, 5, 2]]],
                [[[1, 2, 3], 
                  [4, 5, 6]],
                [[0, 2, 1], 
                 [1, 5, 2]]]])
print(x)
print(x.shape)
y2 = x.unsqueeze(2)
print(y2)
print(y2.shape)
y3 = x.unsqueeze(3)
print(y3)
print(y3.shape)
# 输出:
tensor([[[[1, 2, 3],
          [4, 5, 6]],
         [[0, 2, 1],
          [1, 5, 2]]],
        [[[1, 2, 3],
          [4, 5, 6]],
         [[0, 2, 1],
          [1, 5, 2]]]])
torch.Size([2, 2, 2, 3])
tensor([[[[[1, 2, 3],
           [4, 5, 6]]],
         [[[0, 2, 1],
           [1, 5, 2]]]],
        [[[[1, 2, 3],
           [4, 5, 6]]],
         [[[0, 2, 1],
           [1, 5, 2]]]]])
torch.Size([2, 2, 1, 2, 3])
tensor([[[[[1, 2, 3]],
          [[4, 5, 6]]],
         [[[0, 2, 1]],
          [[1, 5, 2]]]],
        [[[[1, 2, 3]],
          [[4, 5, 6]]],
         [[[0, 2, 1]],
          [[1, 5, 2]]]]])
torch.Size([2, 2, 2, 1, 3])

到此这篇关于torch.unsqueeze()函数理解的文章就介绍到这了,更多相关torch.unsqueeze()函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python安装教程全过程(2022最新)

    Python安装教程全过程(2022最新)

    这篇文章主要介绍了Python安装教程全过程(2022最新版本),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Windows系统下多版本pip的共存问题详解

    Windows系统下多版本pip的共存问题详解

    这篇文章主要给大家介绍了关于在Windows系统下多版本pip的共存问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-10-10
  • Python web框架fastapi中间件的使用及CORS跨域问题

    Python web框架fastapi中间件的使用及CORS跨域问题

    fastapi "中间件"是一个函数,它在每个请求被特定的路径操作处理之前,以及在每个响应之后工作,它接收你的应用程序的每一个请求,下面通过本文给大家介绍Python web框架fastapi中间件的使用及CORS跨域问题,感兴趣的朋友一起看看吧
    2024-03-03
  • Python+PyQt5实现PDF批量水印工具

    Python+PyQt5实现PDF批量水印工具

    本文围绕 PDF添加水印.py,完整讲解如何将单文件水印脚本重构为可交互的 PyQt5 桌面应用,支持拖拽导入、实时预览、子线程处理与输出管理,并给出关键实现细节与结构说明,需要的朋友可以参考下
    2026-03-03
  • Python文件名的匹配之clob库

    Python文件名的匹配之clob库

    这篇文章主要介绍了Python文件名的匹配之clob库,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好地帮助哟,需要的朋友可以参考下
    2021-05-05
  • Python 如何展开嵌套的序列

    Python 如何展开嵌套的序列

    这篇文章主要介绍了Python 如何展开嵌套的序列,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • Python3多线程基础知识点

    Python3多线程基础知识点

    在本篇内容里小编给大家分享了关于Python3多线程基础知识点内容,需要的朋友们跟着学习参考下。
    2019-02-02
  • Python中logging日志记录到文件及自动分割的操作代码

    Python中logging日志记录到文件及自动分割的操作代码

    这篇文章主要介绍了Python中logging日志记录到文件及自动分割,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 详解如何使用SQLAlchemy连接数据库

    详解如何使用SQLAlchemy连接数据库

    这篇文章主要为大家详细介绍了如何使用 SQLAlchemy 连接数据库、建立模型、操作表、以及查询操作表数据等内容,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • 通过实例了解Python str()和repr()的区别

    通过实例了解Python str()和repr()的区别

    这篇文章主要介绍了通过实例了解Python str()和repr()的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01

最新评论