2016-04-13 11 views
0

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?

+0

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

Antwort

1

Ich schaute auf die source code für Version 0.1. Die einzigen gültigen Werte für das Schlüsselwort "init" sind "nvecs" oder "random". Der Standardwert ist "nvecs". Wenn Sie eine dieser beiden versuchen, werden Sie Ihre Fehler beseitigen:

P, F, D, A, fit, itr, exectimes = parafac2.parafac2(T, 3, init='nvecs', ma_iter=5, conv= 4) 

Oder

P, F, D, A, fit, itr, exectimes = parafac2.parafac2(T, 3, init='random', ma_iter=5, conv= 4) 
+0

Danke, haben Sie Unterlagen zur Verwendung von scikit-tensor? Ich kenne diese Parameter nicht (P, F, D, A, passen, itr, exectimes), was ist die Rückkehr? –

Verwandte Themen