【发布时间】:2017-02-06 11:31:01
【问题描述】:
我正在尝试使用 python 库 scikit-tensor 分解 3D 矩阵。我设法将我的张量(尺寸为 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-tensor 库函数 cp_als 提供的规范分解。分解后的矩阵的预期维数是多少?
【问题讨论】:
-
cp.py 说:$A\approx\sum_{r=1}^{rank} \\vec{u}_r^{(1)} \outer \cdots \outer \\vec {u}_r^{(N)}$。你试过吗?这应该与“P.totensor()”相同
-
@Bort 你的意思是 cp.py 的第 145 和 146 行?
标签: python math data-science scikits