【问题标题】:How can I unroll a PyTorch Tensor?如何展开 PyTorch 张量?
【发布时间】:2021-02-01 12:23:03
【问题描述】:

我有一个张量:

t1 = torch.randn(564, 400)

我想将它展开为一个长为 225600 的一维张量。

我该怎么做?

【问题讨论】:

标签: python numpy pytorch tensor


【解决方案1】:

Pytorch 很像 numpy,所以你可以简单地做,

t1 = t1.view(-1) or t1 = t1.reshape(-1)

【讨论】:

    【解决方案2】:

    请注意 Kris 建议的 viewreshape 之间的区别 - 来自reshape的文档字符串:

    如果可能,返回的张量将是一个视图 的input。否则,它将是副本。连续输入和具有兼容步幅的输入可以在不复制的情况下重新整形...

    因此,如果您的张量不连续,则调用 reshape 应该处理如果使用 view 而必须处理的问题;即调用t1.contiguous().view(...) 处理非连续张量。

    另外,可以使用faltten:t1 = t1.flatten() 等同于view(-1),这样更易​​读。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-25
      • 2021-11-04
      • 1970-01-01
      • 2021-02-07
      • 2019-07-08
      • 2021-10-11
      • 2022-10-17
      • 2022-10-18
      相关资源
      最近更新 更多