现在位置: 首页 > PyTorch 教程 > 正文

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)

参数:

  • 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 参考手册