Ich verwende den folgenden Code für Parafac-Zerlegung in Scikit-Tensor. Dieser Code ist ein Beispiel für einen Scikit-Tensor.Verwenden Sie Scikit-Tensor für Tensor-Analyse
from sktensor import dtensor, cp_als, parafac2, tucker_hooi
import numpy
import sktensor
T=dtensor(numpy.arange(100).reshape(2, 5,10))
print (type(T))
P, F, D, A, fit, itr, exectimes = parafac2.parafac2(T, 3, init=3, ma_iter=5, conv= 4)
Wenn ich diesen Code ausführen, der Ausgang ist ...
Traceback (most recent call last):
File "C:/Users/meghdad/PycharmProjects/tensorInPython/dtensor1.py", line 17, in <module>
P, F, D, A, fit, itr, exectimes = parafac2.parafac2(T, 3, init=3, ma_iter=5, conv= 4)
File "C:\Anaconda3\lib\site-packages\scikit_tensor-0.1-py3.5.egg\sktensor\parafac2.py", line 50, in parafac2
File "C:\Anaconda3\lib\site-packages\scikit_tensor-0.1-py3.5.egg\sktensor\parafac2.py", line 113, in __init
UnboundLocalError: local variable 'F' referenced before assignment
Was kann ich tun, um diesen Fehler zu beheben?
Wo haben Sie den scikit-Tensor-Paket aus installieren? Ich sehe es nicht in den Standard-Anaconda [Pakete] (https://docs.continuum.io/anaconda/pkg-docs) und ich sehe es nur in der Anaconda Cloud [hier] (https: // anaconda. org/search? q = scikit-tensor) und das ist der Quellcode. Welche Version von Python verwendest du? Basierend auf dem Code in [pypi] (https://pypi.python.org/pypi/scikit-tensor) ist nicht klar, dass es 3.5 unterstützt. – Paul