BaseNDArray中有四个矩阵相乘的方法:
1、public INDArray mul(INDArray other)
2、public INDArray muli(INDArray other)
3、public INDArray mmul(INDArray other)
4、public INDArray mmuli(INDArray other)
第一个mul和第二个muli是Hadamard product(哈达玛积),要求相乘的两个矩阵的行和列相等,例如都是3行2列。其中mul,是返回一个新的矩阵,矩阵相乘得到结果后会有三个矩阵。而muli是将结果写到相乘的两个矩阵的第一个矩阵中,并返回这个矩阵,因此不产生新矩阵,矩阵相乘得到结果后还是两个矩阵。
第三个mmul是一般的矩阵相乘,要求相乘的两个矩阵第一个矩阵的列数等于第二个矩阵的行数,例如第一个矩阵是3行2列,第二个矩阵2行4列。它返回一个新的矩阵,矩阵相乘得到结果后会有三个矩阵。
第四个mmuli又有不同,它一样是一般的矩阵相乘,要求相乘的两个矩阵第一个矩阵的列数等于第二个矩阵的行数。同时,mmuli是将结果写到相乘的两个矩阵的第一个矩阵中,并返回这个矩阵。这要求相乘后的结果矩阵的行、列数和第一个矩阵的行、列数相等。都是n阶的方阵满足这个要求。第一个矩阵是3行2列,第二个矩阵2行2列也满足。
第二个和第四个方法的名称中的i是in place的缩写,是就地的意思。修改本矩阵,直接体现乘积结果。