tensorly.cp_tensor
.cp_to_tensor
- cp_to_tensor(cp_tensor, mask=None)[source]
Turns the Khatri-product of matrices into a full tensor
factor_matrices = [|U_1, ... U_n|]
becomes a tensor shape(U[1].shape[0], U[2].shape[0], ... U[-1].shape[0])
- Parameters:
- cp_tensorCPTensor = (weight, factors)
factors is a list of factor matrices, all with the same number of columns i.e. for all matrix U in factor_matrices: U has shape
(s_i, R)
, where R is fixed and s_i varies with i- maskndarray a mask to be applied to the final tensor. It should be
broadcastable to the shape of the final tensor, that is
(U[1].shape[0], ... U[-1].shape[0])
.
- Returns:
- ndarray
full tensor of shape
(U[1].shape[0], ... U[-1].shape[0])
Notes
This version works by first computing the mode-0 unfolding of the tensor and then refolding it.
There are other possible and equivalent alternate implementation, e.g. summing over r and updating an outer product of vectors.