PyTorch torch.block_diag 関数
torch.block_diagPyTorch でブロック対角行列を作成するための関数です。複数の入力テンソルを対角ブロックとして対角線に沿って配置し、より大きなブロック対角行列を形成します。
関数定義
torch.block_diag(*tensors)
使用例
実例
import torch
# ブロック対角行列を作成
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("ブロック対角行列:")
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]])
# 複数の行列ブロック
m1 = torch.eye(2)
m2 = torch.eye(3)
result2 = torch.block_diag(m1, m2)
print("2つの単位行列のブロック対角:")
print(result2)
# ブロック対角行列を作成
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("ブロック対角行列:")
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]])
# 複数の行列ブロック
m1 = torch.eye(2)
m2 = torch.eye(3)
result2 = torch.block_diag(m1, m2)
print("2つの単位行列のブロック対角:")
print(result2)
その他の拡張
Pytorch torch リファレンスマニュアル