def _ttm_compute(self, V, mode, transp): Z = self.unfold(mode, transp=True).tocsr() if transp: V = V.T Z = Z.dot(V.T) shape = copy(self.shape) shape[mode] = V.shape[0] if issparse_mat(Z): newT = unfolded_sptensor((Z.data, (Z.row, Z.col)), [mode], None, shape=shape).fold() else: newT = unfolded_dtensor(Z.T, mode, shape).fold() return newT
def disabled_test_factorization_sparse(): I, J, K, rank = 10, 20, 75, 5 Tmat = sprand(I, J * K, 0.1).tocoo() T = unfolded_sptensor((Tmat.data, (Tmat.row, Tmat.col)), None, 0, [], (I, J, K)).fold() core, U = tucker.hooi(T, rank, maxIter=20) Tmat = Tmat.toarray() T = unfolded_dtensor(Tmat, 0, (I, J, K)).fold() core2, U2 = tucker.hooi(T, rank, maxIter=20) assert allclose(core2, core) for i in range(len(U)): assert allclose(U2[i], U[i])
def test_factorization_sparse(): I, J, K, rank = 10, 20, 75, 5 Tmat = sprand(I, J * K, 0.1).tocoo() T = unfolded_sptensor((Tmat.data, (Tmat.row, Tmat.col)), None, 0, [], (I, J, K)).fold() core, U = tucker_hooi.tucker_hooi(T, rank, maxIter=20) Tmat = Tmat.toarray() T = unfolded_dtensor(Tmat, 0, (I, J, K)).fold() core2, U2 = tucker_hooi.tucker_hooi(T, rank, maxIter=20) assert_true(allclose(core2, core)) for i in range(len(U)): assert_true(allclose(U2[i], U[i]))
def _ttm_compute(self, V, mode, transp): Z = self.unfold(mode, transp=True).tocsr() if transp: V = V.T Z = Z.dot(V.T) shape = np.copy(self.shape) shape[mode] = V.shape[0] if issparse_mat(Z): newT = unfolded_sptensor((Z.data, (Z.row, Z.col)), [mode], None, shape=shape).fold() else: newT = unfolded_dtensor(Z.T, mode, shape).fold() return newT