PyTorch torch.addmm 関数
torch.addmmは PyTorch において、行列乗算の結果を入力行列に加算するための関数です。mat1 @ mat2 の行列乗算を実行し、その結果を input に加算します。
関数定義
torch.addmm(input, mat1, mat2, *, beta=1.0, alpha=1.0, out=None)
パラメータ:
input(Tensor): 入力行列で、結果に加算されます。mat1(Tensor): 最初の行列で、形状は (n, m) です。mat2(Tensor): 2番目の行列で、形状は (m, p) です。beta(float, オプション): input に掛ける係数で、デフォルトは 1.0 です。alpha(float, オプション): mat1 @ mat2 の結果に掛ける係数で、デフォルトは 1.0 です。out(Tensor, オプション): 出力テンソルです。
戻り値:
torch.Tensor: 行列乗算の結果と入力行列の和を返します。形状は (n, p) です。
使用例
例
import torch
# 入力行列と2つの行列を作成
input = torch.randn(3, 3)
mat1 = torch.randn(3, 4)
mat2 = torch.randn(4, 3)
# addmm を実行
result = torch.addmm(input, mat1, mat2)
print("入力行列の形状:", input.shape)
print("行列1の形状:", mat1.shape)
print("行列2の形状:", mat2.shape)
print("結果の形状:", result.shape)
print(result)
# 入力行列と2つの行列を作成
input = torch.randn(3, 3)
mat1 = torch.randn(3, 4)
mat2 = torch.randn(4, 3)
# addmm を実行
result = torch.addmm(input, mat1, mat2)
print("入力行列の形状:", input.shape)
print("行列1の形状:", mat1.shape)
print("行列2の形状:", mat2.shape)
print("結果の形状:", result.shape)
print(result)
出力結果は次のとおりです:
输入矩阵形状: torch.Size([3, 3])
矩阵1形状: torch.Size([3, 4])
矩阵2形状: torch.Size([4, 3])
结果形状: torch.Size([3, 3])
tensor([[ 0.4692, -0.2864, -0.6013],
[ 1.5525, 0.1233, -0.0182],
[-0.3956, 0.6267, 0.3580]])
例 - alpha と beta パラメータを使用
import torch
input = torch.randn(3, 3)
mat1 = torch.randn(3, 4)
mat2 = torch.randn(4, 3)
# alpha と beta パラメータを使用
result = torch.addmm(input, mat1, mat2, beta=0.5, alpha=2.0)
# 以下と同等: result = 0.5 * input + 2.0 * (mat1 @ mat2)
print(result)
input = torch.randn(3, 3)
mat1 = torch.randn(3, 4)
mat2 = torch.randn(4, 3)
# alpha と beta パラメータを使用
result = torch.addmm(input, mat1, mat2, beta=0.5, alpha=2.0)
# 以下と同等: result = 0.5 * input + 2.0 * (mat1 @ mat2)
print(result)
その他の拡張
Pytorch torch リファレンスマニュアル