ttl | R Documentation |
Contracted (m-Mode) product between a Tensor of arbitrary number of modes and a list of matrices. The result is folded back into Tensor.
ttl(darr, list_mat, ms=NULL)
darr |
DelayedArray object with K modes |
list_mat |
a list of 2D DelayedArray objects |
ms |
a vector of modes to contract on
(order should match the order of |
This function is an extension of the ttl
by DelayedArray.
This is a wrapper function to unfold
.
Performs ttm
repeated for a single Tensor and
a list of matrices on multiple modes. For instance,
suppose we want to do multiply a Tensor object darr
with
three matrices mat1
, mat2
, mat3
on modes 1, 2, and 3.
We could do ttm(ttm(ttm(darr,mat1,1),mat2,2),3)
,
or we could do ttl(darr,list(mat1,mat2,mat3),c(1,2,3))
.
The order of the matrices in the list should obviously match
the order of the modes.
This is a common operation for various Tensor decompositions
such as CP and Tucker.
For the math on the m-Mode Product, see Kolda and Bader (2009).
DelayedArray object with K modes (Tensor)
The returned Tensor does not drop any modes equal to 1.
T. Kolda, B. Bader, "Tensor decomposition and applications". SIAM Applied Mathematics and Applications 2009.
ttm
library("DelayedRandomArray")
darr <- RandomUnifArray(c(3,4,5))
dlizt <- list(
'darr1' = RandomUnifArray(c(10,3)),
'darr2' = RandomUnifArray(c(10,4)))
ttl(darr, dlizt, ms=c(1,2))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.