2016-10-17 3 views
1

ich die sklearn LabelSpreadingModel wie unten bin mit:sklearn: halb-überwachtes Lernen - LabelSpreadingModel Speicherfehler

label_spreading_model = LabelSpreading() 
model_s = label_spreading_model.fit(my_inputs, labels) 

Aber ich habe die folgenden Fehler:

MemoryErrorTraceback (most recent call last) 
    <ipython-input-17-73adbf1fc908> in <module>() 
     11 
     12 label_spreading_model = LabelSpreading() 
    ---> 13 model_s = label_spreading_model.fit(my_inputs, labels) 

    /usr/local/lib/python2.7/dist-packages/sklearn/semi_supervised/label_propagation.pyc in fit(self, X, y) 
     224 
     225   # actual graph construction (implementations should override this) 
    --> 226   graph_matrix = self._build_graph() 
     227 
     228   # label construction 

    /usr/local/lib/python2.7/dist-packages/sklearn/semi_supervised/label_propagation.pyc in _build_graph(self) 
     455   affinity_matrix = self._get_kernel(self.X_) 
     456   laplacian = graph_laplacian(affinity_matrix, normed=True) 
    --> 457   laplacian = -laplacian 
     458   if sparse.isspmatrix(laplacian): 
     459    diag_mask = (laplacian.row == laplacian.col) 

    MemoryError: 

Sieht aus wie etwas falsch mit der Laplace von meine Eingabematrix. Gibt es irgendwelche Parameter, die ich konfigurieren kann oder irgendwelche Änderungen, die ich diesen Fehler vermeiden kann? Vielen Dank!

Antwort

2

Es ist offensichtlich: Ihr PC ist nicht mehr genügend Arbeitsspeicher.

Wie Sie keine Parameter einstellen, die RBF-Kernel standardmäßig verwendet wird (proof).

Einiger Auszug aus scikit-learn's docs:

The RBF kernel will produce a fully connected graph which is represented in 
memory by a dense matrix. This matrix may be very large and combined with the 
cost of performing a full matrix multiplication calculation for each iteration 
of the algorithm can lead to prohibitively long running times 

Vielleicht ist der folgende (nächste Satz in der Dokumentation oben) helfen:

On the other hand, the KNN kernel will produce a much more memory-friendly 
sparse matrix which can drastically reduce running times. 

Aber ich weiß nicht, Ihre Daten, PC-Konfiguration und co. und kann nur raten ...