2016-03-25 7 views
0

Ich nehme Eingabewerte von einem Django-Modell Admin-Bildschirm und auf Pre_save Aufruf von H2O, um Vorhersagen für andere Werte zu tun und sie zu speichern.H2OFrame konvertiert dict in alle Nullen

Derzeit konvertiere ich meine Eingabe von Pandas (versucht mit sklearn Vorverarbeitung leicht, hier zu arbeiten) unter Verwendung von:

modelH2OFrame = h2o.H2OFrame(python_obj = model_data_frame.to_dict('list'))

Es analysiert und Lasten. Hölle, es schafft sogar einen Rahmen mit Werten, wenn ich es Schritt für Schritt mache.

ABER. Wenn ich dies innerhalb von Django pre_save ausführe, kommt der H2OFrame komplett leer zurück.

Ideen für warum das passieren kann? Manchmal bekomme ich Fehler bei der Verbindung zum h2o Cluster oder Timeouts - vielleicht ist das ein ähnliches Problem? Ich lade die H2O-Modelle in den pre_save-Aufruf und mache die Vorhersagen, ordne sie den Modellfeldern zu und schließe dann den h2o-Cluster (in einer Funktion).

+0

scheint eher ein Scala-Problem? – dartdog

Antwort

2

Es scheint, dass die Umwandlung von Pandas DataFrame in H2OFrame außerhalb von Django funktioniert, aber in Django fehlschlägt. Das Problem könnte darin liegen, dass Djangos pre_save das Schreiben/Lesen der temporären CSV-Datei, die H2O beim Einlesen eines Python-Objekts erstellt, nicht erlaubt. Eine mögliche Problemumgehung besteht darin, den Pandas DataFrame explizit in eine CSV-Datei mit model_data_frame.to_csv(<path>, index=False) zu schreiben und dann die Datei in H2O mit h2o.import_file(<path>) zu importieren.