Функция PyTorch torch.addr


Pytorch torch 参考手册Справочное руководство PyTorch torch

torch.addrЭто функция в PyTorch, используемая для вычисления внешнего произведения двух векторов и добавления его к входной матрице. Она вычисляет внешнее произведение каждой строки vec1 и каждого столбца vec2, затем добавляет его к input.

Определение функции

torch.addr(input, vec1, vec2, *, beta=1.0, alpha=1.0, out=None)

Parameters:

  • input(Tensor): Входная матрица, добавляемая к результату.
  • vec1(Tensor): Первый вектор с формой (n,) или (n, 1).
  • vec2(Tensor): Второй вектор с формой (m,) или (m, 1).
  • beta(float, необязательный): Коэффициент, на который умножается input, по умолчанию 1.0.
  • alpha(float, необязательный): Коэффициент, на который умножается результат внешнего произведения, по умолчанию 1.0.
  • out(Tensor, необязательный): Выходной тензор.

Возвращаемое значение:

  • torch.Tensor: Возвращает сумму внешнего произведения и входной матрицы с формой (n, m).

Пример использования

Пример

import torch

# Создать входную матрицу и два вектора
input = torch.zeros(3, 4)
vec1 = torch.tensor([1, 2, 3])
vec2 = torch.tensor([4, 5, 6, 7])

# Вычислить внешнее произведение и добавить его к входной матрице
result = torch.addr(input, vec1, vec2)

print("Форма входной матрицы:", input.shape)
print("Вектор 1:", vec1)
print("Вектор 2:", vec2)
print("Форма результата:", result.shape)
print(result)

Результат вывода:

输入矩阵形状: torch.Size([3, 4])
向量1: tensor([1, 2, 3])
向量2: tensor([4, 5, 6, 7])
结果形状: torch.Size([3, 4])
tensor([[ 4.,  5.,  6.,  7.],
        [ 8., 10., 12., 14.],
        [12., 15., 18., 21.]])

Пример — без использования входной матрицы

import torch

vec1 = torch.tensor([1, 2, 3])
vec2 = torch.tensor([4, 5, 6])

# Вычислить внешнее произведение напрямую
result = torch.addr(torch.zeros(3, 3), vec1, vec2)
print(result)

Pytorch torch 参考手册Справочное руководство PyTorch torch

Другие расширения