2016-03-25 8 views
0

djangoモデルの管理画面から入力値を取得し、h2oを呼び出すpre_saveを実行して他の値の予測を行い、保存します。H2OFrameはdictをすべて0に変換します

現在、私は使用して(簡単にここでsklearnの前で作業しようとしている)パンダから私の入力を変換:

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

それが解析し、ロードします。地獄それは私が段階的にそれを行うときにも値を持つフレームを作成します。

しかし、 Django pre_saveの内部でこれを実行すると、H2OFrameは完全に空に戻ります。

これはなぜ起こっているのでしょうか?ときには、h2oクラスタやタイムアウトに接続する際にエラーが発生することがあります。これはおそらく関連する問題ですか?私はpre_save呼び出しでH2Oモデルをロードし、予測を行い、それらをモデルフィールドに割り当て、h2oクラスターを(1つの関数で)シャットダウンします。

+0

はScalaの問題のように思えますか? – dartdog

答えて

2

パンダのDataFrameからH2OFrameへの変換は、Djangoの外ではうまくいくようですが、Djangoでは失敗します。この問題は、Djangoのpre_saveが、Pythonオブジェクトを取り込むときにH2Oが作成する一時的な.csvファイルの書き込み/読み取りを許可していないことが原因である可能性があります。考えられる回避策は、model_data_frame.to_csv(<path>, index=False)で.csvファイルにPandas DataFrameを明示的に書き込み、ファイルをh2o.import_file(<path>)でH2Oにインポートすることです。

関連する問題