Función PyTorch torch.block_diag
Manual de referencia de Pytorch torch
torch.block_diagEs una función en PyTorch utilizada para crear matrices diagonales por bloques. Organiza múltiples tensores de entrada como bloques diagonales a lo largo de la diagonal, formando una matriz diagonal por bloques más grande.
Definición de la función
torch.block_diag(*tensors)
Ejemplo de uso
Ejemplo
import torch
# Crear matriz diagonal por bloques
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("Matriz diagonal por bloques:")
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]])
# Múltiples bloques de matrices
m1 = torch.eye(2)
m2 = torch.eye(3)
result2 = torch.block_diag(m1, m2)
print("Diagonal por bloques de dos matrices identidad:")
print(result2)
# Crear matriz diagonal por bloques
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("Matriz diagonal por bloques:")
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]])
# Múltiples bloques de matrices
m1 = torch.eye(2)
m2 = torch.eye(3)
result2 = torch.block_diag(m1, m2)
print("Diagonal por bloques de dos matrices identidad:")
print(result2)
Otras extensiones