Die Verwendung der Funktionen tensor.squeeze und tensor.unsqueeze

tensor.squeeze()und tensor.unsqueeze() sind zwei Funktionen, die zum Ändern der Tensorform in PyTorch verwendet werden. Ihre Funktionen sind wie folgt:

  • tensor.squeeze(dim=None, *, out=None): Komprimieren Sie die Dimension der Größe 1 im Tensor und geben Sie einen neuen Tensor zurück. Es können zu komprimierende Dimensionen angegeben werden (standardmäßig werden alle Dimensionen mit Größe 1 komprimiert).

  • tensor.unsqueeze(dim, *, out=None): Fügen Sie eine neue Dimension an der angegebenen Position ein und geben Sie einen neuen Tensor zurück. Der Dim-Parameter gibt die Position der neu eingefügten Dimension an (beginnend bei 0), die eine negative Zahl sein kann und die vorletzte Dimension angibt.

  • Squeeze bedeutet, die Dimension zu komprimieren, und Unsqueeze bedeutet, die Dimension zu vergrößern.

Im Folgenden werden Beispiele zur Veranschaulichung ihrer Verwendung aufgeführt.

tensor.squeeze()

import torch

# 创建一个形状为 (1, 3, 1, 2) 的 tensor
x = torch.randn(1, 3, 1, 2)
print(x.shape)  # torch.Size([1, 3, 1, 2])

# 压缩尺寸为 1 的维度
y = x.squeeze()
print(y.shape)  # torch.Size([3, 2])

# 指定要压缩的维度
y = x.squeeze(dim=0)
print(y.shape)  # torch.Size([3, 1, 2])

Im obigen Beispiel haben wir einen Tensor mit der Form (1, 3, 1, 2) erstellt und dann die squeeze()Funktion verwendet, um die Dimension der Größe 1 zu komprimieren. Im zweiten squeeze()Aufruf haben wir angegeben, dass die zu komprimierende Dimension 0 ist, was die erste Dimension ist, sodass die Größe der ersten Dimension auf 1 komprimiert wird und zu einem Tensor mit der Form (3, 1, 2) wird.

tensor.unsqueeze()

import torch

# 创建一个形状为 (3, 2) 的 tensor
x = torch.randn(3, 2)
print(x.shape)  # torch.Size([3, 2])

# 在维度 0 上插入新维度
y = x.unsqueeze(dim=0)
print(y.shape)  # torch.Size([1, 3, 2])

# 在维度 1 上插入新维度
y = x.unsqueeze(dim=1)
print(y.shape)  # torch.Size([3, 1, 2])

# 在倒数第二个维度上插入新维度
y = x.unsqueeze(dim=-2)
print(y.shape)  # torch.Size([3, 1, 2])

Im obigen Beispiel haben wir einen Tensor der Form (3, 2) erstellt und dann unsqueeze()die Funktion verwendet, um neue Dimensionen an verschiedenen Positionen einzufügen. Im ersten unsqueeze()Aufruf haben wir die neue Dimension auf Dimension 0 eingefügt, sodass die neue Tensorform (1, 3, 2) ist. Im zweiten und dritten unsqueeze()Aufruf fügen wir neue Dimensionen in Dimension 1 bzw. in der vorletzten Dimension ein und erhalten Tensoren der Form (3, 1, 2) bzw. (3, 2, 1).

Supongo que te gusta

Origin blog.csdn.net/qq_41661809/article/details/129332303
Recomendado
Clasificación