РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
215 of 769 menu

Функция addmm

Функция addmm выполняет операцию beta * self + alpha * (mat1 @ mat2). Она принимает три тензора: входной тензор, первый множитель и второй множитель. Результатом является новый тензор той же размерности, что и входной тензор. Функция полезна при реализации полносвязных слоёв, где нужно объединить умножение матриц и сложение с bias.

Синтаксис

torch.addmm(input, mat1, mat2, beta=1, alpha=1)

Параметры:

  • input - тензор, который будет добавлен к результату;
  • mat1 - первый множитель (матрица);
  • mat2 - второй множитель (матрица);
  • beta - множитель для входного тензора (по умолчанию 1);
  • alpha - множитель для произведения матриц (по умолчанию 1).

Пример

Выполним простейшее матричное умножение с добавлением:

import torch input_t = torch.tensor([1, 2, 3]) mat1 = torch.tensor([[1, 2], [3, 4], [5, 6]]) mat2 = torch.tensor([[7, 8, 9], [10, 11, 12]]) res = torch.addmm(input_t, mat1, mat2) print(res)

Результат выполнения кода:

tensor([[ 28, 32, 36], [ 62, 72, 82], [ 96, 112, 128]])

Пример

Используем параметры beta и alpha для масштабирования слагаемых:

import torch input_t = torch.tensor([1, 2, 3], dtype=torch.float) mat1 = torch.tensor([[1., 2.], [3., 4.], [5., 6.]]) mat2 = torch.tensor([[7., 8., 9.], [10., 11., 12.]]) res = torch.addmm(input_t, mat1, mat2, beta=2, alpha=3) print(res)

Результат выполнения кода:

tensor([[ 44., 50., 56.], [ 95., 110., 125.], [146., 170., 194.]])

Пример

Используем addmm для вычисления выходов полносвязного слоя с bias:

import torch torch.manual_seed(0) x = torch.randn(3, 4) weights = torch.randn(5, 4) bias = torch.randn(5) out = torch.addmm(bias, weights, x.t()) print(out.shape)

Результат выполнения кода:

torch.Size([5, 3])

Смотрите также

  • функцию mm,
    которая выполняет умножение двух матриц без добавления
  • функцию matmul,
    которая поддерживает умножение матриц и тензоров высших размерностей
  • функцию mv,
    которая умножает матрицу на вектор
  • функцию add,
    которая выполняет поэлементное сложение тензоров
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить