Keras, Sparse-Matrix-Problem

8

Ich versuche dem Keras-Modell eine riesige karge Matrix zuzuführen. Da das Dataset nicht in den Arbeitsspeicher passt, besteht der Weg darin, das Modell auf Daten zu trainieren, die von einem Generator Batch für Batch generiert werden.

Um diesen Ansatz zu testen und sicherzustellen, dass meine Lösung gut funktioniert, habe ich ein einfaches Kera-MLP leicht modifiziert in der Reuters-Newswire-Topic-Klassifikationsaufgabe . Die Idee besteht also darin, originale und bearbeitete Modelle zu vergleichen. Ich konvertiere gerade numpy.darray in scipy.sparse.csr.csr_matrix und füttere es dem Modell.

Aber mein Modell stürzt irgendwann ab und ich brauche eine Hand, um einen Grund herauszufinden.

Hier ist das Originalmodell und meine Ergänzungen unter

%Vor%

Es gibt aus:

%Vor%

Schließlich ist hier mein Teil

%Vor%

Der Absturz:

%Vor%

Ich glaube, dass das Problem auf eine falsche Einrichtung von samples_per_epoch zurückzuführen ist. Ich würde es sehr schätzen, wenn sich jemand dazu äußern könnte.

    
Kirk 03.06.2016, 08:46
quelle

2 Antworten

7

Hier ist meine Lösung.

%Vor%

In meinem Fall, X - Sparse - Matrix, y - Array.

    
Kirk 16.06.2016 05:53
quelle
1

Wenn Sie Lasagne anstelle von Keras verwenden können, habe ich eine kleine MLP-Klasse mit den folgenden Features geschrieben:

unterstützt sowohl dichte als auch spärliche Matrizen

unterstützt Drop-out und versteckte Ebene

Unterstützt die vollständige Wahrscheinlichkeitsverteilung anstelle von One-Hot-Labels und unterstützt so das Multilabel-Training.

Unterstützt scikit-lernen wie API (passen, vorhersagen, Genauigkeit, etc.)

ist sehr einfach zu konfigurieren und zu ändern

    
Ash 16.11.2016 00:50
quelle