【问题标题】:How to squeeze all but one torch dims?如何挤压除一个手电筒以外的所有亮度?
【发布时间】:2021-02-16 14:41:52
【问题描述】:

torch.squeeze 可以将张量的形状转换为尺寸不为 1。

我想在除一个以外的所有维度上压缩我的张量(在本例中,不是压缩dim=0)。

我在文档中只能看到

dim (int, optional) – 如果给定,输入将仅在 这个维度

我想要相反的:

t = torch.zeros(5, 1, 6, 1, 7, 1)

squeezed = torch.magic_squeeze(keep_dim=3)

assert squeezed == (5, 6, 1, 7)

这个可以吗?

【问题讨论】:

    标签: python pytorch


    【解决方案1】:

    重塑会让你完成你想做的事情:

    import torch
    
    t = torch.zeros(5, 1, 6, 1, 7, 1)
    t = t.reshape((5, 6, 1, 7))
    >>> torch.Size([5, 6, 1, 7])
    

    【讨论】:

      【解决方案2】:

      您可以使用unsqueeze() 压缩并添加维度:

      import torch
      
      t = torch.zeros(5, 1, 6, 1, 7, 1)
      squeezed = t.squeeze().unsqueeze(2)
      print(squeezed.shape)
      >>> torch.Size([5, 6, 1, 7])
      

      【讨论】:

      • 谢谢,我正在寻找更多内置的东西:)
      猜你喜欢
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 2018-06-24
      • 1970-01-01
      • 2021-11-15
      • 2014-06-17
      • 2021-08-28
      • 1970-01-01
      相关资源
      最近更新 更多