How can we compute batch matrix-matrix product of matrices (3-D tensors) in MATLAB?

13 vues (au cours des 30 derniers jours)
I have two 3-D tensors of size b*n*m and b*m*p. I need the product of these two tensors to get the output size as b*n*p. I have used direct matrix multiplication using * operator. Moreover, I have used 'pagetimes'. But it is not working. Is there any function in MATLAB like 'torch.bmm' in python as shown in link: https://pytorch.org/docs/stable/generated/torch.bmm.html to do the matrix multiplication of two 3-D tensors.

Réponse acceptée

Bruno Luong
Bruno Luong le 5 Déc 2023
b = 2;
n = 3;
m = 4;
p = 5;
A = rand(b,n,m);
B = rand(b, m,p);
AA = permute(A, [2 3 1]);
BB = permute(B, [2 4 1 3]);
AB=pagemtimes(AA, BB);
AB=permute(AB,[3 1 4 2]);
size(AB)
ans = 1×3
2 3 5
AB
AB =
AB(:,:,1) = 1.1069 0.9331 1.2839 0.4248 1.0635 1.2576 AB(:,:,2) = 1.3688 1.5129 1.6656 0.6568 1.2286 1.3592 AB(:,:,3) = 1.0351 1.2450 1.3362 0.4743 1.1831 1.3162 AB(:,:,4) = 1.2485 1.0840 1.4573 0.7987 1.7168 1.7815 AB(:,:,5) = 0.5739 0.7361 0.7294 0.9621 1.9460 2.0458
  5 commentaires
Bruno Luong
Bruno Luong le 6 Déc 2023
Sorry I don't know dlarray, and I'm not sure what layer do you refer to.
BIPIN SAMUEL
BIPIN SAMUEL le 7 Déc 2023
I refer to the deep learning layer where input is 3-D tensor in the formatted dlarray and I want to do these operations as a part of forming that layer.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur AI for Signals dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by