tensorly.parafac2_tensor
.parafac2_to_slice
- parafac2_to_slice(parafac2_tensor, slice_idx, validate=True)[source]
Generate a single slice along the first mode from the PARAFAC2 tensor.
The decomposition is on the form
such that the i-th frontal slice, , of is given bywhere
is the diagonal matrix whose nonzero entries are equal to the -th row of the factor matrix , is a factor matrix such that the cross product matrix is constant for all , and is a factor matrix. To compute this decomposition, we reformulate the expression for such thatwhere
is a orthogonal matrix and is a matrix.An alternative formulation of the PARAFAC2 decomposition is that the tensor element
is given bywith the same constraints hold for
as above.- Parameters:
- parafac2_tensorParafac2Tensor - (weight, factors, projection_matrices)
- weights1D array of shape (rank, )
weights of the factors
- factorsList of factors of the PARAFAC2 decomposition
Contains the matrices
, and described above
- projection_matricesList of projection matrices used to create evolving
factors.
- Returns:
- ndarray
Full tensor of shape [P[slice_idx].shape[1], C.shape[1]], where P is the projection matrices and C is the last factor matrix of the Parafac2Tensor.