📜  pytorch 中的 view(-1) (1)

📅  最后修改于: 2023-12-03 15:34:32.983000             🧑  作者: Mango

PyTorch 中的 view(-1)

在 PyTorch 中,view(-1) 是一种非常常见的操作。它的作用是将一个高维的 Tensor 拉成一维,可以用于重塑 Tensor 的形状。一般来说,view() 可以接受一个或多个参数,用于指定 Tensor 的新形状。当参数中存在一个 -1 时,PyTorch 会自动计算该位置的维度大小。

下面我们来看一个例子:

import torch

x = torch.randn(2, 3, 4)
print(x.size())  # 输出 (2, 3, 4)

y = torch.view(-1)
print(y.size())  # 输出 24

在这个例子中,我们首先创建了一个大小为 (2, 3, 4) 的 Tensor。然后对该 Tensor 进行了一次 view(-1) 操作,将其形状拉成了一维。最后,我们输出了新 Tensor 的大小 (24,)。

需要注意的是,在使用 view(-1) 时,我们必须保证 Tensor 中的元素数量不变。否则,PyTorch 会报错并提示我们无法重塑该 Tensor。

下面我们再来看一个例子:

import torch

x = torch.randn(2, 3, 4)
print(x.size())  # 输出 (2, 3, 4)

y = x.view(6, -1)
print(y.size())  # 输出 (6, 4)

在这个例子中,我们首先创建了一个大小为 (2, 3, 4) 的 Tensor。然后对该 Tensor 进行了一次 view(6, -1) 操作,将其形状重塑为一个大小为 (6, 4) 的 Tensor。需要注意的是,参数中的 -1 自动计算出来的是 4,也就是新 Tensor 中的最后一维的大小。

除了 view() 操作,PyTorch 还提供了一些其他的操作用于重塑 Tensor 的形状,例如 reshape()squeeze() 等。需要根据具体的需求选择合适的操作。

总之,在 PyTorch 中,view(-1) 是一种非常常见的操作。它可以方便地对 Tensor 进行重塑,从而满足不同的使用场景。