Spec-Zone.ru › PyTorch 2.14

torch.addmm

torch.addmm(input, mat1, mat2, *, beta=1, alpha=1, out=None) → Tensor

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

Если mat1 — тензор размера (n×m)(n \times m), mat2 — тензор размера (m×p)(m \times p), то input должен быть совместимым при broadcasting с тензором размера (n×p)(n \times p), а out будет тензором размера (n×p)(n \times p).

alpha и beta — коэффициенты масштабирования для произведения матриц mat1 и mat2 и добавляемой матрицы input соответственно.

out=β input+α(mat1i@mat2i)\text{out} = \beta\ \text{input} + \alpha\ (\text{mat1}_i \mathbin{@} \text{mat2}_i)

Если beta равен 0, содержимое input будет проигнорировано, а nan и inf в нём не будут распространяться.

Для входных данных типа FloatTensor или DoubleTensor аргументы beta и alpha должны быть вещественными числами, в противном случае они должны быть целыми числами.

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

Предупреждение

Поддержка разреженных тензоров является бета-функцией: некоторые сочетания формата хранения, dtype и устройства могут не поддерживаться или не поддерживать autograd. Если вы заметили отсутствующую функциональность, отправьте запрос на добавление функции.

Этот оператор поддерживает TensorFloat32.

На некоторых устройствах ROCm при использовании входных данных float16 этот модуль будет использовать другую точность для обратного прохода.

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

Пример:

>>> M = torch.randn(2, 3)
>>> mat1 = torch.randn(2, 3)
>>> mat2 = torch.randn(3, 3)
>>> torch.addmm(M, mat1, mat2)
tensor([[-4.8716,  1.4671, -1.3746],
        [ 0.7573, -3.9555, -2.8681]])
torch.addmm(input, mat1, mat2, out_dtype, *, beta=1, alpha=1, out=None) → Tensor
Параметры:
  • input (Tensor) – матрица, которую нужно добавить
  • mat1 (Tensor) – первая матрица для матричного умножения
  • mat2 (Tensor) – вторая матрица для матричного умножения
  • out_dtype (dtype) – dtype выходного тензора. На CUDA и XPU при входных dtype torch.float16/torch.bfloat16 поддерживается только torch.float32. Другие бэкенды (включая внешние ускорители) могут поддерживать дополнительные сочетания dtype входных и выходных данных.
Именованные аргументы:
  • beta (Number, optional) – множитель для input (β\beta)
  • alpha (Number, optional) – множитель для mat1@mat2mat1 @ mat2 (α\alpha)
  • out (Tensor, optional) – выходной тензор.

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

Spec-Zone.ru

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