Fonction torch.sum de PyTorch
Manuel de référence Pytorch torch
torch.sumest une fonction de PyTorch utilisée pour calculer la somme des éléments d'un tenseur. Elle peut calculer la somme de tous les éléments, ou selon des dimensions spécifiées.
Il s'agit d'une opération de réduction couramment utilisée en apprentissage profond, utilisée dans des scénarios tels que le calcul de perte et les statistiques.
Définition de fonction
torch.sum(input, dim, keepdim, dtype, out)
Parameters:
input(Tensor) : Le tenseur d'entrée.dim(int ou tuple d'int, facultatif) : La ou les dimensions sur lesquelles effectuer le calcul. SiNone, alors calculez la somme de tous les éléments.keepdim(bool, facultatif) : Indique si la dimension doit être conservée. La valeur par défaut estFalse。dtype(torch.dtype, facultatif) : Le type de données du tenseur de sortie.out(Tensor, optionnel) : Le tenseur de sortie.
Valeur de retour:
torch.Tensor: Renvoie le tenseur calculé.
Exemples d'utilisation
Exemple 1 : Somme de tous les éléments
Exemple
import torch
# Créer un tenseur
x = torch.tensor([[1, 2, 3], [4, 5, 6]])
# Calculer la somme de tous les éléments
total = torch.sum(x)
print("Tenseur :")
print(x)
print("Somme des éléments :", total)
# Créer un tenseur
x = torch.tensor([[1, 2, 3], [4, 5, 6]])
# Calculer la somme de tous les éléments
total = torch.sum(x)
print("Tenseur :")
print(x)
print("Somme des éléments :", total)
Le résultat de sortie est:
张量:
tensor([[1, 2, 3],
[4, 5, 6]])
元素之和: tensor(21)
Exemple 2 : Somme selon une dimension spécifiée
Exemple
import torch
x = torch.tensor([[1, 2, 3], [4, 5, 6]])
# Somme selon dim=0 (colonnes)
sum_dim0 = torch.sum(x, dim=0)
print("Somme selon dim=0 :", sum_dim0)
# Somme selon dim=1 (lignes)
sum_dim1 = torch.sum(x, dim=1)
print("Somme selon dim=1 :", sum_dim1)
x = torch.tensor([[1, 2, 3], [4, 5, 6]])
# Somme selon dim=0 (colonnes)
sum_dim0 = torch.sum(x, dim=0)
print("Somme selon dim=0 :", sum_dim0)
# Somme selon dim=1 (lignes)
sum_dim1 = torch.sum(x, dim=1)
print("Somme selon dim=1 :", sum_dim1)
Le résultat de sortie est:
沿 dim=0 求和: tensor([5, 7, 9]) 沿 dim=1 求和: tensor([ 6, 15])
Exemple 3 : Utilisation de keepdim pour préserver les dimensions
Exemple
import torch
x = torch.tensor([[1, 2, 3], [4, 5, 6]])
# Sans conserver la dimension
sum1 = torch.sum(x, dim=0)
print("Sans conserver la dimension :", sum1.shape)
# Conserver la dimension
sum2 = torch.sum(x, dim=0, keepdim=True)
print("En conservant la dimension :", sum2.shape)
print(sum2)
x = torch.tensor([[1, 2, 3], [4, 5, 6]])
# Sans conserver la dimension
sum1 = torch.sum(x, dim=0)
print("Sans conserver la dimension :", sum1.shape)
# Conserver la dimension
sum2 = torch.sum(x, dim=0, keepdim=True)
print("En conservant la dimension :", sum2.shape)
print(sum2)
Le résultat de sortie est:
不保持维度: torch.Size([3]) 保持维度: torch.Size([1, 3]) tensor([[5, 7, 9]])
Exemple 4 : Calcul de la perte dans les réseaux de neurones
Exemple
import torch
# Simuler les valeurs prédites et réelles
predictions = torch.tensor([0.1, 0.9, 0.8, 0.3])
targets = torch.tensor([0.0, 1.0, 1.0, 0.0])
# Calculer la perte d'erreur quadratique moyenne
loss = torch.sum((predictions - targets) ** 2) / len(prédictions)
print("Perte MSE :", loss.item())
# Simuler les valeurs prédites et réelles
predictions = torch.tensor([0.1, 0.9, 0.8, 0.3])
targets = torch.tensor([0.0, 1.0, 1.0, 0.0])
# Calculer la perte d'erreur quadratique moyenne
loss = torch.sum((predictions - targets) ** 2) / len(prédictions)
print("Perte MSE :", loss.item())
Le résultat de sortie est:
MSE 损失: 0.07499999690771103
Autres extensions