PyTorch torch.expand_as-Funktion


Pytorch torch 参考手册PyTorch torch-Referenzhandbuch

torch.expand_asist eine Funktion in PyTorch, mit der ein Tensor auf dieselben Dimensionen wie ein anderer Tensor erweitert wird. Sie isttorch.expandeine praktische Version, die automatisch die Dimensionen des Referenztensors für die Erweiterung verwendet.

Funktionsdefinition

torch.expand_as(other)

Parameters:

  • other(Tensor): Der Referenztensor; der aktuelle Tensor wird auf dieselben Dimensionen wie dieser Tensor erweitert.

Rückgabewert:

  • torch.Tensor: Gibt die erweiterte Tensoransicht zurück.

Anwendungsbeispiele

Beispiel

import torch

# Einen Vektor erstellen
x = torch.tensor([1, 2, 3, 4])

# Eine Zielmatrix erstellen
other = torch.randn(3, 4)

# x auf dieselbe Form wie other erweitern
y = x.expand_as(other)

print("Ursprüngliche Vektorform:", x.shape)
print("Form des Referenztensors:", other.shape)
print("Erweiterte Form:", y.shape)
print("nErweiterter Tensor:")
print(y)

Die Ausgabe ist:

原始向量形状: torch.Size([4])
参考张量形状: torch.Size([3, 4])
扩展后形状: torch.Size([3, 4])

扩展后的张量:
tensor([[1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4]])

Beispiel

import torch

# Spaltenvektor erstellen
x = torch.tensor([[1], [2], [3]])

# Ziel-3D-Tensor erstellen
other = torch.randn(3, 4, 5)

# x auf dieselbe Form wie other erweitern
y = x.expand_as(other)

print("Ursprüngliche Form des Spaltenvektors:", x.shape)
print("Form des Referenztensors:", other.shape)
print("Erweiterte Form:", y.shape)

Die Ausgabe ist:

原始列向量形状: torch.Size([3, 1])
参考张量形状: torch.Size([3, 4, 5])
扩展后形状: torch.Size([3, 4, 5])

Beispiel

import torch

# Beispiel für die Anwendung in neuronalen Netzen
# Angenommen, es gibt einen Bias-Vektor, der auf die Feature-Map gebroadcastet werden muss
bias = torch.tensor([0.1, 0.2, 0.3])  # Bias für 3 Kanäle

# Simuliere die Feature-Map-Ausgabe der Faltung (Batch, Kanal, Höhe, Breite)
feature_map = torch.randn(8, 3, 32, 32)

# Den Bias auf dieselbe Form wie die Feature-Map erweitern
bias_expanded = bias.expand_as(feature_map)

print("Bias-Form:", bias.shape)
print("Feature-Map-Form:", feature_map.shape)
print("Form des erweiterten Bias:", bias_expanded.shape)

# Füge den Bias hinzu
output = feature_map + bias_expanded
print("Form von nOutput nach dem Hinzufügen des Bias:", output.shape)

Die Ausgabe ist:

偏置形状: torch.Size([3])
特征图形状: torch.Size([8, 3, 32, 32])
扩展后偏置形状: torch.Size([8, 3, 32, 32])

加上偏置后的输出形状: torch.Size([8, 3, 32, 32])

Hinweis:torch.expand_asNur Dimensionen der Größe 1 können zu größeren Größen erweitert werden.otherDie Größe des Tensors muss mit der erweiterten Größe kompatibel sein (d. h., die Dimensionen des aktuellen Tensors können über Broadcasting auf die Zielgröße erweitert werden). Es wird eine Ansicht zurückgegeben, keine Kopie.


Pytorch torch 参考手册PyTorch torch-Referenzhandbuch

Andere Erweiterungen