Spec-Zone.ru › PyTorch 2.14

torch.sparse.sampled_addmm

torch.sparse.sampled_addmm(input, mat1, mat2, *, beta=1., alpha=1., out=None) → Tensor [source]

Выполняет умножение плотных матриц mat1 и mat2 в позициях, заданных шаблоном разреженности input. Матрица input добавляется к итоговому результату.

Математически выполняется следующая операция:

out=α(mat1@mat2)∗spy(input)+β input\text{out} = \alpha\ (\text{mat1} \mathbin{@} \text{mat2})*\text{spy}(\text{input}) + \beta\ \text{input}

где spy(input)\text{spy}(\text{input}) — матрица шаблона разреженности input, alpha и beta — коэффициенты масштабирования. spy(input)\text{spy}(\text{input}) принимает значение 1 в позициях, где input имеет ненулевые значения, и 0 в остальных позициях.

Примечание

input должен быть разреженным тензором CSR. mat1 и mat2 должны быть плотными тензорами.

Параметры:
  • input (Tensor) – разреженная матрица CSR формы (m, n), которая добавляется и используется для вычисления выборочного умножения матриц
  • mat1 (Tensor) – плотная матрица формы (m, k) для умножения
  • mat2 (Tensor) – плотная матрица формы (k, n) для умножения
Именованные аргументы:
  • beta (Number, optional) – множитель для input (β\beta)
  • alpha (Number, optional) – множитель для mat1@mat2mat1 @ mat2 (α\alpha)
  • out (Tensor, optional) – выходной тензор. Игнорируется, если None. По умолчанию: None.

Примеры:

>>> input = torch.eye(3, device='cuda').to_sparse_csr()
>>> mat1 = torch.randn(3, 5, device='cuda')
>>> mat2 = torch.randn(5, 3, device='cuda')
>>> torch.sparse.sampled_addmm(input, mat1, mat2)
tensor(crow_indices=tensor([0, 1, 2, 3]),
    col_indices=tensor([0, 1, 2]),
    values=tensor([ 0.2847, -0.7805, -0.1900]), device='cuda:0',
    size=(3, 3), nnz=3, layout=torch.sparse_csr)
>>> torch.sparse.sampled_addmm(input, mat1, mat2).to_dense()
tensor([[ 0.2847,  0.0000,  0.0000],
    [ 0.0000, -0.7805,  0.0000],
    [ 0.0000,  0.0000, -0.1900]], device='cuda:0')
>>> torch.sparse.sampled_addmm(input, mat1, mat2, beta=0.5, alpha=0.5)
tensor(crow_indices=tensor([0, 1, 2, 3]),
    col_indices=tensor([0, 1, 2]),
    values=tensor([ 0.1423, -0.3903, -0.0950]), device='cuda:0',
    size=(3, 3), nnz=3, layout=torch.sparse_csr)

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.sparse.sampled_addmm.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API