Функция PyTorch torch.sum


Pytorch torch 参考手册Справочное руководство Pytorch torch

torch.sum— это функция в PyTorch, используемая для вычисления суммы элементов тензора. Она может вычислять сумму всех элементов или по указанным измерениям.

Это часто используемая операция редукции в глубоком обучении, применяемая в таких сценариях, как вычисление функции потерь и статистика.

Определение функции

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

Parameters:

  • input(Tensor): Входной тензор.
  • dim(int или tuple из int, необязательно): измерение(я) для вычисления. ЕслиNone, то вычисляется сумма всех элементов.
  • keepdim(bool, необязательно): сохранять ли измерение. По умолчаниюFalse。
  • dtype(torch.dtype, необязательно): тип данных выходного тензора.
  • out(Tensor, необязательный): Выходной тензор.

Возвращаемое значение:

  • torch.Tensor: Возвращает вычисленный тензор.

Примеры использования

Пример 1: Сумма всех элементов

Пример

import torch

# Создать тензор
x = torch.tensor([[1, 2, 3], [4, 5, 6]])

# Вычислить сумму всех элементов
total = torch.sum(x)

print("Тензор:")
print(x)
print("Сумма элементов:", total)

Результат вывода:

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

Пример 2: Суммирование по указанному измерению

Пример

import torch

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

# Сумма по dim=0 (столбцы)
sum_dim0 = torch.sum(x, dim=0)
print("Сумма по dim=0:", sum_dim0)

# Сумма по dim=1 (строки)
sum_dim1 = torch.sum(x, dim=1)
print("Сумма по dim=1:", sum_dim1)

Результат вывода:

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

Пример 3: Использование keepdim для сохранения размерностей

Пример

import torch

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

# Без сохранения размерности
sum1 = torch.sum(x, dim=0)
print("Без сохранения размерности:", sum1.shape)

# Сохранить размерность
sum2 = torch.sum(x, dim=0, keepdim=True)
print("С сохранением размерности:", sum2.shape)
print(sum2)

Результат вывода:

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

Пример 4: Вычисление потерь в нейронных сетях

Пример
import torch

# Имитация предсказанных и истинных значений
predictions = torch.tensor([0.1, 0.9, 0.8, 0.3])
targets = torch.tensor([0.0, 1.0, 1.0, 0.0])

# Вычислить потерю среднеквадратичной ошибки
loss = torch.sum((predictions - targets) ** 2) / len(predictions)

print("Потеря MSE:", loss.item())

Результат вывода:

MSE 损失: 0.07499999690771103

Pytorch torch 参考手册Справочное руководство Pytorch torch

Другие расширения