torch.cumulative_trapezoid
-
torch.cumulative_trapezoid(y, x=None, *, dx=None, dim=-1) → Tensor -
Вычисляет накопительное значение по формуле трапеций вдоль
dim. По умолчанию предполагается, что расстояние между элементами равно 1, ноdxможно использовать, чтобы задать другое постоянное расстояние, аx— чтобы задать произвольные расстояния вдольdim.Подробнее см. в описании
torch.trapezoid(). Разница междуtorch.trapezoid()и этой функцией заключается в том, чтоtorch.trapezoid()возвращает одно значение для каждого интегрирования, тогда как эта функция возвращает накопленное значение для каждого интервала внутри интегрирования. Это аналогично тому, как.sumвозвращает значение, а.cumsum— накопленную сумму.- Параметры:
- Именованные аргументы:
-
-
dx (float) – постоянное расстояние между значениями. Если не указаны ни
x, ниdx, по умолчанию используется значение 1. Фактически умножает результат на это значение. - dim (int) – Размерность, вдоль которой вычисляется значение по формуле трапеций. По умолчанию используется последняя (самая внутренняя) размерность.
-
dx (float) – постоянное расстояние между значениями. Если не указаны ни
Примеры:
>>> # Cumulatively computes the trapezoidal rule in 1D, spacing is implicitly 1. >>> y = torch.tensor([1, 5, 10]) >>> torch.cumulative_trapezoid(y) tensor([3., 10.5]) >>> # Computes the same trapezoidal rule directly up to each element to verify >>> (1 + 5) / 2 3.0 >>> (1 + 10 + 10) / 2 10.5 >>> # Cumulatively computes the trapezoidal rule in 1D with constant spacing of 2 >>> # NOTE: the result is the same as before, but multiplied by 2 >>> torch.cumulative_trapezoid(y, dx=2) tensor([6., 21.]) >>> # Cumulatively computes the trapezoidal rule in 1D with arbitrary spacing >>> x = torch.tensor([1, 3, 6]) >>> torch.cumulative_trapezoid(y, x) tensor([6., 28.5]) >>> # Computes the same trapezoidal rule directly up to each element to verify >>> ((3 - 1) * (1 + 5)) / 2 6.0 >>> ((3 - 1) * (1 + 5) + (6 - 3) * (5 + 10)) / 2 28.5 >>> # Cumulatively computes the trapezoidal rule for each row of a 3x3 matrix >>> y = torch.arange(9).reshape(3, 3) tensor([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) >>> torch.cumulative_trapezoid(y) tensor([[ 0.5, 2.], [ 3.5, 8.], [ 6.5, 14.]]) >>> # Cumulatively computes the trapezoidal rule for each column of the matrix >>> torch.cumulative_trapezoid(y, dim=0) tensor([[ 1.5, 2.5, 3.5], [ 6.0, 8.0, 10.0]]) >>> # Cumulatively computes the trapezoidal rule for each row of a 3x3 ones matrix >>> # with the same arbitrary spacing >>> y = torch.ones(3, 3) >>> x = torch.tensor([1, 3, 6]) >>> torch.cumulative_trapezoid(y, x) tensor([[2., 5.], [2., 5.], [2., 5.]]) >>> # Cumulatively computes the trapezoidal rule for each row of a 3x3 ones matrix >>> # with different arbitrary spacing per row >>> y = torch.ones(3, 3) >>> x = torch.tensor([[1, 2, 3], [1, 3, 5], [1, 4, 7]]) >>> torch.cumulative_trapezoid(y, x) tensor([[1., 2.], [2., 4.], [3., 6.]])
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.cumulative_trapezoid.html