Python kitaplığı scikit-tensor'u kullanarak bir 3D matrisini ayrıştırmaya çalışıyorum. Tensor'umu (100x50x5 boyutlarında) üç matris haline getirmeyi başardım. Sorum şu: Tensör katsayısı ile üretilen ayrıştırılmış matrisi kullanarak ilk matrisi nasıl yeniden oluşturabilirim? Ayrışmanın bir anlamı olup olmadığını kontrol etmek istiyorum.Tensör çarpanlanmasından sonra bir Tensör yeniden oluşturun
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)
Ben scikit-tensör kütüphane işlevi cp_als sağlanan olarak Kurallı bir oluşuma kullanıyorum: Kodum şudur. Ayrıştırılmış matrislerin beklenen boyutsallığı nedir?
cp.py diyor: $ A \ approx \ sum_ {r = 1}^{rank} \\ vec {u} _r^{(1)} \ dış \ cdots \ dış \\ vec {u} _r^{(N)} $. Bunu denedin mi? Bu, "P.totensor()" – Bort
@Bort ile aynı olmalıdır, cp.py'nin 145 ve 146 çizgilerini kastediyorsunuz? –