I am representing an adjacency matrix as a tensor of 4 dimensions as follows: (batch_size, n_nodes, n_nodes, n_edge_features). Say I have 2 adjacency matrices of subgraphs t1.shape = (1, 46, 46, 8)
and t2.shape = (1, 4, 4, 8)
. I want to ‘merge’ the two graphs to get an adjacency matrix t3 = (1, 50, 50, 8)
. In other words, I want to stack the two tensors on the diagonal (using smthg like block_diag) with off-diagonal entries = 0.
Unfortunately torch.block_diag
only works for 2D tensors, and I am not sure how to use other concatenation/stacking function (e.g. torch.stack
, torch.cat
) to achieve this.