Función torch.baddbmm de PyTorch
Manual de referencia de Pytorch torch
torch.baddbmmEs una función en PyTorch que se utiliza para realizar la multiplicación de matrices por lotes y añadirla a la matriz de entrada por lotes. Realiza la multiplicación de matrices para cada par de matrices en batch1 y batch2, y luego lo suma a la matriz correspondiente en input.
Definición de la función
torch.baddbmm(input, batch1, batch2, *, beta=1.0, alpha=1.0, out=None)
Parámetros:
input(Tensor): La matriz de entrada por lotes, con forma (b, n, p).batch1(Tensor): La primera matriz por lotes, con forma (b, n, m).batch2(Tensor): La segunda matriz por lotes, con forma (b, m, p).beta(float, opcional): El coeficiente que multiplica a input, el valor predeterminado es 1.0.alpha(float, opcional): El coeficiente que multiplica el resultado de batch1 @ batch2, el valor predeterminado es 1.0.out(Tensor, opcional): El tensor de salida.
Valor de retorno:
torch.Tensor: Devuelve la suma del resultado de la multiplicación de matrices por lotes y la matriz de entrada por lotes, con forma (b, n, p).
Ejemplo de uso
Ejemplo
import torch
# Crear la matriz de entrada por lotes y las matrices por lotes
input = torch.randn(10, 3, 3)
batch1 = torch.randn(10, 3, 4)
batch2 = torch.randn(10, 4, 3)
# Ejecutar baddbmm
result = torch.baddbmm(input, batch1, batch2)
print("Forma de la matriz de entrada por lotes:", input.shape)
print("Forma de la matriz por lotes 1:", batch1.shape)
print("Forma de la matriz por lotes 2:", batch2.shape)
print("Forma del resultado:", result.shape)
print(result[0]) # Imprimir el primer resultado
# Crear la matriz de entrada por lotes y las matrices por lotes
input = torch.randn(10, 3, 3)
batch1 = torch.randn(10, 3, 4)
batch2 = torch.randn(10, 4, 3)
# Ejecutar baddbmm
result = torch.baddbmm(input, batch1, batch2)
print("Forma de la matriz de entrada por lotes:", input.shape)
print("Forma de la matriz por lotes 1:", batch1.shape)
print("Forma de la matriz por lotes 2:", batch2.shape)
print("Forma del resultado:", result.shape)
print(result[0]) # Imprimir el primer resultado
El resultado de salida es:
输入批量矩阵形状: torch.Size([10, 3, 3])
批量矩阵1形状: torch.Size([10, 3, 4])
批量矩阵2形状: torch.Size([10, 4, 3])
结果形状: torch.Size([10, 3, 3])
tensor([[-1.0917, 0.0174, -0.6599],
[ 1.0403, -0.3905, -0.6314],
[ 0.0988, -0.3047, 0.4841]])
Otras extensiones