我在渲染部分代码时遇到了一些麻烦 . 我有一个(n,n,m)张量,我想将每个切片乘以m乘以秒(n乘n)矩阵(非元素) .
这是for循环的样子:
Tensor=zeros(2,2,3);
Matrix = [1,2; 3,4];
for j=1:n
Matrices_Multiplied = Tensor(:,:,j)*Matrix;
Recursive_Matrix=Recursive_Matrix + Tensor(:,:,j)/trace(Matrices_Multiplied);
end
如何以矢量化方式对张量内的各个矩阵执行矩阵乘法?是否有像tensor-dot这样的内置函数可以处理这个还是更聪明?
1 回答
Bsxfunning并使用efficient matrix-multiplication,我们可以 -
同样,可以用一个矩阵乘法替换最后一步,以进一步提高性能 . 因此,所有矩阵乘法专用解决方案将是 -
Runtime test
基准代码 -
计时 -