Skip to contents

Chain_matmul

Usage

torch_chain_matmul(matrices)

Arguments

matrices

(Tensors...) a sequence of 2 or more 2-D tensors whose product is to be determined.

TEST

Returns the matrix product of the \(N\) 2-D tensors. This product is efficiently computed using the matrix chain order algorithm which selects the order in which incurs the lowest cost in terms of arithmetic operations ([CLRS]_). Note that since this is a function to compute the product, \(N\) needs to be greater than or equal to 2; if equal to 2 then a trivial matrix-matrix product is returned. If \(N\) is 1, then this is a no-op - the original matrix is returned as is.

Examples

if (torch_is_installed()) {

a = torch_randn(c(3, 4))
b = torch_randn(c(4, 5))
c = torch_randn(c(5, 6))
d = torch_randn(c(6, 7))
torch_chain_matmul(list(a, b, c, d))
}
#> torch_tensor
#>   0.5614  -5.4586  -5.7327  -6.0240  -7.1567   8.0357   2.6662
#>  -8.6505  -2.0206   1.9776  -0.6823   5.3706  -1.4820  -0.1377
#> -37.8102 -16.2021   1.2792 -20.0048  23.6967  -8.0024  -1.2803
#> [ CPUFloatType{3,7} ]