PyTorch torch.sum-Funktion
PyTorch torch Referenzhandbuch
torch.sumist eine Funktion in PyTorch, die verwendet wird, um die Summe der Tensorelemente zu berechnen. Sie kann die Summe aller Elemente oder entlang angegebener Dimensionen berechnen.
Dies ist eine häufig verwendete Reduktionsoperation im Deep Learning, die in Szenarien wie Verlustberechnung und Statistik verwendet wird.
Funktionsdefinition
torch.sum(input, dim, keepdim, dtype, out)
Parameters:
input(Tensor): Der Eingabe-Tensor.dim(int oder Tupel von int, optional): Die Dimension(en), die berechnet werden soll(en). WennNone, dann wird die Summe aller Elemente berechnet.keepdim(bool, optional): Ob die Dimension beibehalten werden soll. Standard istFalse。dtype(torch.dtype, optional): Der Datentyp des Ausgabe-Tensors.out(Tensor, optional): Der Ausgabe-Tensor.
Rückgabewert:
torch.Tensor: Gibt den berechneten Tensor zurück.
Anwendungsbeispiele
Beispiel 1: Summe aller Elemente
Beispiel
import torch
# Tensor erstellen
x = torch.tensor([[1, 2, 3], [4, 5, 6]])
# Summe aller Elemente berechnen
total = torch.sum(x)
print("Tensor:")
print(x)
print("Summe der Elemente:", total)
# Tensor erstellen
x = torch.tensor([[1, 2, 3], [4, 5, 6]])
# Summe aller Elemente berechnen
total = torch.sum(x)
print("Tensor:")
print(x)
print("Summe der Elemente:", total)
Das Ausgabeergebnis ist:
张量:
tensor([[1, 2, 3],
[4, 5, 6]])
元素之和: tensor(21)
Beispiel 2: Summierung entlang einer angegebenen Dimension
Beispiel
import torch
x = torch.tensor([[1, 2, 3], [4, 5, 6]])
# Summierung entlang dim=0 (Spalten)
sum_dim0 = torch.sum(x, dim=0)
print("Summe entlang dim=0:", sum_dim0)
# Summierung entlang dim=1 (Zeilen)
sum_dim1 = torch.sum(x, dim=1)
print("Summe entlang dim=1:", sum_dim1)
x = torch.tensor([[1, 2, 3], [4, 5, 6]])
# Summierung entlang dim=0 (Spalten)
sum_dim0 = torch.sum(x, dim=0)
print("Summe entlang dim=0:", sum_dim0)
# Summierung entlang dim=1 (Zeilen)
sum_dim1 = torch.sum(x, dim=1)
print("Summe entlang dim=1:", sum_dim1)
Das Ausgabeergebnis ist:
沿 dim=0 求和: tensor([5, 7, 9]) 沿 dim=1 求和: tensor([ 6, 15])
Beispiel 3: keepdim verwenden, um Dimensionen beizubehalten
Beispiel
import torch
x = torch.tensor([[1, 2, 3], [4, 5, 6]])
# Ohne Beibehaltung der Dimension
sum1 = torch.sum(x, dim=0)
print("Ohne Beibehaltung der Dimension:", sum1.shape)
# Dimension beibehalten
sum2 = torch.sum(x, dim=0, keepdim=True)
print("Beibehaltung der Dimension:", sum2.shape)
print(sum2)
x = torch.tensor([[1, 2, 3], [4, 5, 6]])
# Ohne Beibehaltung der Dimension
sum1 = torch.sum(x, dim=0)
print("Ohne Beibehaltung der Dimension:", sum1.shape)
# Dimension beibehalten
sum2 = torch.sum(x, dim=0, keepdim=True)
print("Beibehaltung der Dimension:", sum2.shape)
print(sum2)
Das Ausgabeergebnis ist:
不保持维度: torch.Size([3]) 保持维度: torch.Size([1, 3]) tensor([[5, 7, 9]])
Beispiel 4: Verlustberechnung in neuronalen Netzen
Beispiel
import torch
# Simuliere vorhergesagte und wahre Werte
predictions = torch.tensor([0.1, 0.9, 0.8, 0.3])
targets = torch.tensor([0.0, 1.0, 1.0, 0.0])
# Verlust des mittleren quadratischen Fehlers berechnen
loss = torch.sum((predictions - targets) ** 2) / len(predictions)
print("MSE-Verlust:", loss.item())
# Simuliere vorhergesagte und wahre Werte
predictions = torch.tensor([0.1, 0.9, 0.8, 0.3])
targets = torch.tensor([0.0, 1.0, 1.0, 0.0])
# Verlust des mittleren quadratischen Fehlers berechnen
loss = torch.sum((predictions - targets) ** 2) / len(predictions)
print("MSE-Verlust:", loss.item())
Das Ausgabeergebnis ist:
MSE 损失: 0.07499999690771103
Andere Erweiterungen