# Matrix Multiply

Hello All,

I wish to do a matrix multiplication where the two matrix are of different dimension and the resulting matrix has a new axis. Example

A whose dimension is (7 x 4 x 4) multiplied with B (10 x 4 x 4) gives output ( 7 x 10 x 4 x 4).
I understand here we are multiplying a full Matrix (B) with each element of A. But I am not sure how do I do this in Pytorch.

Regards!

I can’t exact solution but in general in pytorch with Matrices M1 and M2 you can do like this
Hope it helps a bit

``````#M1(n x a) with M2(a x b x c) to get M3(n x b x c)
torch.mm(M1, M2.view(a, -1)).view(n, b, c)
``````
``````# Matrix x Matrix
# Size 2x4
mat1 = torch.randn(2, 3)
mat2 = torch.randn(3, 4)
r = torch.mm(mat1, mat2)

# Matrix + Matrix X Matrix
# Size 3x4
M = torch.randn(3, 4)
mat1 = torch.randn(3, 2)
mat2 = torch.randn(2, 4)
``````
``````# Batch Matrix x Matrix
# Size 10x3x5
batch1 = torch.randn(10, 3, 4)
batch2 = torch.randn(10, 4, 5)
r = torch.bmm(batch1, batch2)

# Batch Matrix + Matrix x Matrix
# Performs a batch matrix-matrix product
# 3x4 + (5x3x4 X 5x4x2 ) -> 5x3x2
M = torch.randn(3, 2)
batch1 = torch.randn(5, 3, 4)
batch2 = torch.randn(5, 4, 2)