Я пытаюсь разложить 3D-матрицу, используя библиотеку python scikit-tensor. Мне удалось разложить мой тензор (с размерами 100x50x5) на три матрицы. Мой вопрос заключается в том, как я могу снова скомпоновать исходную матрицу, используя разложенную матрицу, полученную с фазовращением тензора? Я хочу проверить, имеет ли разложение какое-либо значение. Мой код следующий:
import logging
from scipy.io.matlab import loadmat
from sktensor import dtensor, cp_als
import numpy as np
//Set logging to DEBUG to see CP-ALS information
logging.basicConfig(level=logging.DEBUG)
T = np.ones((400, 50))
T = dtensor(T)
P, fit, itr, exectimes = cp_als(T, 10, init='random')
// how can I re-compose the Matrix T? TA = np.dot(P.U[0], P.U[1].T)
Я использую каноническое разложение, как это предусмотрено библиотечной функцией scikit-тензора cp_als. Также какова ожидаемая размерность разложенных матриц?