📅  最后修改于: 2023-12-03 15:34:32.983000             🧑  作者: Mango
在 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 进行重塑,从而满足不同的使用场景。