Latex-Beamer-Template/HOSVD.py
2018-10-08 16:21:20 +08:00

11 lines
368 B
Python

def hosvd(X):
U = [None for _ in range(X.ndims())]
dims = X.ndims()
S = X
for d in range(dims):
C = base.unfold(X,d) #mode n分解
U1,S1,V1 = np.linalg.svd(C) #SVD分解
S = base.tensor_times_mat(S, U1.T,d) #迭代求解核心张量
U[d] = U1
core = S
return U,core #返回伴随矩阵和核心张量