Hello guys,
I came across an interesting operation and am curious about how it works.
aa = torch.rand([1, 100, 1152, 1, 8])
bb = torch.rand([10, 1, 1152, 8, 16])
cc = aa @ bb
print(cc.size())

output is
torch.Size([10, 100, 1152, 1, 16])

My question is how @ (matrix multiplication operator) perform on the two tensors? It seems that it does two sub-matrix-multiplications, one is 10x1 multiplies with 1x100 and the other one is 1x8 multiplies with 8x16.
Who can give more explanation for me?
Thanks in advance.