Fonction PyTorch torch.block_diag
Manuel de référence PyTorch torch
torch.block_diagest une fonction de PyTorch utilisée pour créer une matrice diagonale par blocs. Elle dispose plusieurs tenseurs d'entrée en blocs diagonaux le long de la diagonale pour former une matrice diagonale par blocs plus grande.
Définition de fonction
torch.block_diag(*tensors)
Exemple d'utilisation
Exemple
import torch
# Créer une matrice diagonale par blocs
a = torch.tensor([[1, 2], [3, 4]])
b = torch.tensor([[5, 6, 7]])
c = torch.tensor([[8], [9]])
result = torch.block_diag(a, b, c)
print("Matrice diagonale par blocs :")
print(result)
# tensor([[1, 2, 0, 0, 0],
# [3, 4, 0, 0, 0],
# [0, 0, 5, 6, 7],
# [0, 0, 8, 0, 0],
# [0, 0, 9, 0, 0]])
# Plusieurs blocs de matrices
m1 = torch.eye(2)
m2 = torch.eye(3)
result2 = torch.block_diag(m1, m2)
print("Matrice diagonale par blocs de deux matrices identité :")
print(result2)
# Créer une matrice diagonale par blocs
a = torch.tensor([[1, 2], [3, 4]])
b = torch.tensor([[5, 6, 7]])
c = torch.tensor([[8], [9]])
result = torch.block_diag(a, b, c)
print("Matrice diagonale par blocs :")
print(result)
# tensor([[1, 2, 0, 0, 0],
# [3, 4, 0, 0, 0],
# [0, 0, 5, 6, 7],
# [0, 0, 8, 0, 0],
# [0, 0, 9, 0, 0]])
# Plusieurs blocs de matrices
m1 = torch.eye(2)
m2 = torch.eye(3)
result2 = torch.block_diag(m1, m2)
print("Matrice diagonale par blocs de deux matrices identité :")
print(result2)
Autres extensions