Función torch.addmm de PyTorch
Manual de referencia de Pytorch torch
torch.addmmEs una función de PyTorch que se utiliza para agregar el resultado de la multiplicación de matrices a la matriz de entrada. Realiza la multiplicación de matrices mat1 @ mat2 y luego suma el resultado a input.
Definición de la función
torch.addmm(input, mat1, mat2, *, beta=1.0, alpha=1.0, out=None)
Parámetros:
input(Tensor): la matriz de entrada, que se agrega al resultado.mat1(Tensor): la primera matriz, de forma (n, m).mat2(Tensor): la segunda matriz, de forma (m, p).beta(float, opcional): coeficiente que multiplica a input, por defecto 1.0.alpha(float, opcional): coeficiente que multiplica el resultado de mat1 @ mat2, por defecto 1.0.out(Tensor, opcional): tensor de salida.
Valor de retorno:
torch.Tensor: Devuelve la suma del resultado de la multiplicación de matrices y la matriz de entrada, con forma (n, p).
Ejemplo de uso
Ejemplo
import torch
# Crear la matriz de entrada y las dos matrices
input = torch.randn(3, 3)
mat1 = torch.randn(3, 4)
mat2 = torch.randn(4, 3)
# Ejecutar addmm
result = torch.addmm(input, mat1, mat2)
print("Forma de la matriz de entrada:", input.shape)
print("Forma de la matriz 1:", mat1.shape)
print("Forma de la matriz 2:", mat2.shape)
print("Forma del resultado:", result.shape)
print(result)
# Crear la matriz de entrada y las dos matrices
input = torch.randn(3, 3)
mat1 = torch.randn(3, 4)
mat2 = torch.randn(4, 3)
# Ejecutar addmm
result = torch.addmm(input, mat1, mat2)
print("Forma de la matriz de entrada:", input.shape)
print("Forma de la matriz 1:", mat1.shape)
print("Forma de la matriz 2:", mat2.shape)
print("Forma del resultado:", result.shape)
print(result)
El resultado de salida es:
输入矩阵形状: 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]])
Ejemplo - uso de los parámetros alpha y beta
import torch
input = torch.randn(3, 3)
mat1 = torch.randn(3, 4)
mat2 = torch.randn(4, 3)
# Usar los parámetros alpha y beta
result = torch.addmm(input, mat1, mat2, beta=0.5, alpha=2.0)
# Equivale a: 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)
# Usar los parámetros alpha y beta
result = torch.addmm(input, mat1, mat2, beta=0.5, alpha=2.0)
# Equivale a: result = 0.5 * input + 2.0 * (mat1 @ mat2)
print(result)
Otras extensiones