Fonction torch.chain_matmul de PyTorch
Manuel de référence Pytorch torch
torch.chain_matmulest une fonction de PyTorch utilisée pour calculer la multiplication en chaîne de plusieurs matrices. Elle minimise le coût de calcul en sélectionnant l'ordre optimal de multiplication des matrices.
Définition de fonction
torch.chain_matmul(*matrices, out=None)
Parameters:
matrices(Tensor) : La séquence de matrices d'entrée.out(Tensor, optionnel) : Le tenseur de sortie.
Valeur de retour:
torch.Tensor: Renvoie le résultat de la multiplication de toutes les matrices.
Exemple d'utilisation
Exemple
import torch
# Créer plusieurs matrices
A = torch.randn(10, 20)
B = torch.randn(20, 30)
C = torch.randn(30, 40)
D = torch.randn(40, 50)
# Multiplication matricielle en chaîne
result = torch.chain_matmul(A, B, C, D)
print("Forme de la matrice A :", A.shape)
print("Forme de la matrice B :", B.shape)
print("Forme de la matrice C :", C.shape)
print("Forme de la matrice D :", D.shape)
print("Forme du résultat :", result.shape)
# Créer plusieurs matrices
A = torch.randn(10, 20)
B = torch.randn(20, 30)
C = torch.randn(30, 40)
D = torch.randn(40, 50)
# Multiplication matricielle en chaîne
result = torch.chain_matmul(A, B, C, D)
print("Forme de la matrice A :", A.shape)
print("Forme de la matrice B :", B.shape)
print("Forme de la matrice C :", C.shape)
print("Forme de la matrice D :", D.shape)
print("Forme du résultat :", result.shape)
Le résultat de sortie est:
矩阵 A 形状: torch.Size([10, 20]) 矩阵 B 形状: torch.Size([20, 30]) 矩阵 C 形状: torch.Size([30, 40]) 矩阵 D 形状: torch.Size([40, 50]) 结果形状: torch.Size([10, 50])
Exemple - Utilisation d'une liste
import torch
# Liste de matrices
matrices = [torch.randn(10, 20),
torch.randn(20, 30),
torch.randn(30, 40)]
# Utiliser une liste comme argument
result = torch.chain_matmul(*matrices)
print("Forme du résultat :", result.shape)
# Liste de matrices
matrices = [torch.randn(10, 20),
torch.randn(20, 30),
torch.randn(30, 40)]
# Utiliser une liste comme argument
result = torch.chain_matmul(*matrices)
print("Forme du résultat :", result.shape)
Autres extensions