PyTorch torch.sum-Funktion


Pytorch torch 参考手册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)

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)

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)

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())

Das Ausgabeergebnis ist:

MSE 损失: 0.07499999690771103

Pytorch torch 参考手册PyTorch torch Referenzhandbuch

Andere Erweiterungen