Función torch.sum de PyTorch


Pytorch torch 参考手册Manual de referencia de Pytorch torch

torch.sumEs una función de PyTorch utilizada para calcular la suma de los elementos de un tensor. Puede calcular la suma de todos los elementos, o a lo largo de una dimensión especificada.

Esta es una operación de reducción común en el aprendizaje profundo, utilizada en escenarios como el cálculo de pérdidas y estadísticas.

Definición de la función

torch.sum(input, dim, keepdim, dtype, out)

Parámetros:

  • input(Tensor): El tensor de entrada.
  • dim(int o tupla de int, opcional): La dimensión a calcular. Si esNone, entonces se calcula la suma de todos los elementos.
  • keepdim(bool, opcional): Si se mantiene la dimensión. El valor predeterminado esFalse。
  • dtype(torch.dtype, opcional): El tipo de dato del tensor de salida.
  • out(Tensor, opcional): El tensor de salida.

Valor de retorno:

  • torch.Tensor: Devuelve el tensor calculado.

Ejemplos de uso

Ejemplo 1: Calcular la suma de todos los elementos

Ejemplo

import torch

# Crear el tensor
x = torch.tensor([[1, 2, 3], [4, 5, 6]])

# Calcular la suma de todos los elementos
total = torch.sum(x)

print("Tensor:")
print(x)
print("Suma de los elementos:", total)

El resultado de salida es:

张量:
tensor([[1, 2, 3],
        [4, 5, 6]])
元素之和: tensor(21)

Ejemplo 2: Sumar a lo largo de una dimensión especificada

Ejemplo

import torch

x = torch.tensor([[1, 2, 3], [4, 5, 6]])

# Sumar a lo largo de dim=0 (columnas)
sum_dim0 = torch.sum(x, dim=0)
print("Suma a lo largo de dim=0:", sum_dim0)

# Sumar a lo largo de dim=1 (filas)
sum_dim1 = torch.sum(x, dim=1)
print("Suma a lo largo de dim=1:", sum_dim1)

El resultado de salida es:

沿 dim=0 求和: tensor([5, 7, 9])
沿 dim=1 求和: tensor([ 6, 15])

Ejemplo 3: Usar keepdim para mantener la dimensión

Ejemplo

import torch

x = torch.tensor([[1, 2, 3], [4, 5, 6]])

# Sin mantener la dimensión
sum1 = torch.sum(x, dim=0)
print("Sin mantener la dimensión:", sum1.shape)

# Mantener la dimensión
sum2 = torch.sum(x, dim=0, keepdim=True)
print("Mantener la dimensión:", sum2.shape)
print(sum2)

El resultado de salida es:

不保持维度: torch.Size([3])
保持维度: torch.Size([1, 3])
tensor([[5, 7, 9]])

Ejemplo 4: Calcular la pérdida en una red neuronal

Ejemplo
import torch

# Simular valores predichos y valores reales
predictions = torch.tensor([0.1, 0.9, 0.8, 0.3])
targets = torch.tensor([0.0, 1.0, 1.0, 0.0])

# Calcular la pérdida de error cuadrático medio
loss = torch.sum((predictions - targets) ** 2) / len(predictions)

print("Pérdida MSE:", loss.item())

El resultado de salida es:

MSE 损失: 0.07499999690771103

Pytorch torch 参考手册Manual de referencia de Pytorch torch

Otras extensiones