PyTorch torch.addr 関数


Pytorch torch 参考手册Pytorch torch リファレンスマニュアル

torch.addrは、2つのベクトルの外積を計算し、それを入力行列に加算するためのPyTorchの関数です。vec1の各行とvec2の各列の外積を計算し、それをinputに加算します。

関数定義

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

パラメータ:

  • input(Tensor): 入力行列。結果に加算されます。
  • vec1(Tensor): 1つ目のベクトル。形状は (n,) または (n, 1) です。
  • vec2(Tensor): 2つ目のベクトル。形状は (m,) または (m, 1) です。
  • beta(float, オプション): input に掛ける係数。デフォルトは 1.0。
  • alpha(float, オプション): 外積結果に掛ける係数。デフォルトは 1.0。
  • out(Tensor, オプション): 出力テンソル。

戻り値:

  • torch.Tensor: 外積と入力行列の和を返します。形状は (n, m) です。

使用例

例

import torch

# 入力行列と2つのベクトルを作成
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 リファレンスマニュアル

その他の拡張機能