【发布时间】:2021-02-01 12:23:03
【问题描述】:
我有一个张量:
t1 = torch.randn(564, 400)
我想将它展开为一个长为 225600 的一维张量。
我该怎么做?
【问题讨论】:
-
这能回答你的问题吗? How do I flatten a tensor in pytorch?
标签: python numpy pytorch tensor
我有一个张量:
t1 = torch.randn(564, 400)
我想将它展开为一个长为 225600 的一维张量。
我该怎么做?
【问题讨论】:
标签: python numpy pytorch tensor
Pytorch 很像 numpy,所以你可以简单地做,
t1 = t1.view(-1) or t1 = t1.reshape(-1)
【讨论】:
请注意 Kris 建议的 view 和 reshape 之间的区别 -
来自reshape的文档字符串:
如果可能,返回的张量将是一个视图 的
input。否则,它将是副本。连续输入和具有兼容步幅的输入可以在不复制的情况下重新整形...
因此,如果您的张量不连续,则调用 reshape 应该处理如果使用 view 而必须处理的问题;即调用t1.contiguous().view(...) 处理非连续张量。
另外,可以使用faltten:t1 = t1.flatten() 等同于view(-1),这样更易读。
【讨论】: