Функция cumsum
Функция cumsum вычисляет кумулятивную сумму элементов тензора.
Первым параметром функция принимает тензор.
Вторым параметром dim указывается ось, вдоль которой производится суммирование.
Третьим параметром dtype можно задать тип данных результата.
Синтаксис
torch.cumsum(input, dim, [dtype])
Пример
Давайте вычислим кумулятивную сумму для одномерного тензора:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
res = torch.cumsum(t, dim=0)
print(res)
Результат выполнения кода:
tensor([ 1, 3, 6, 10, 15])
Пример
Рассмотрим работу функции для двумерного тензора вдоль разных осей:
import torch
t = torch.tensor([
[1, 2, 3],
[4, 5, 6],
])
res_0 = torch.cumsum(t, dim=0)
res_1 = torch.cumsum(t, dim=1)
print(res_0)
print(res_1)
Результат выполнения кода:
tensor([
[1, 2, 3],
[5, 7, 9],
])
tensor([
[ 1, 3, 6],
[ 4, 9, 15],
])
Пример
Изменим тип данных результирующего тензора на float:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
res = torch.cumsum(t, dim=0, dtype=torch.float)
print(res)
Результат выполнения кода:
tensor([ 1., 3., 6., 10., 15.])
Пример
Кумулятивная сумма может быть вычислена и как метод тензора:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
res = t.cumsum(dim=0)
print(res)
Результат выполнения кода:
tensor([ 1, 3, 6, 10, 15])