2016-08-24 53 views
0

我有一個使用Python在H2O中創建的模型。我想生成該模型的POJO,並保存它。如何使用Python生成和保存POJO

假設我的模型名爲model_rf。

我曾嘗試:

h2o.save_model(model_rf, path='./pojo_test', force=False) 

此創建一個名爲「pojo_test」目錄,其中包含了一大堆的二進制文件。我想要一個java文件,就像model_rf.java,這是POJO本身。

我想:

h2o.download_pojo(model_rf, path='./pojo_test_2', get_jar = True) 

這給了錯誤消息:

IOError: [Errno 2] No such file or directory: u'./pojo_test_2/model_rf.java' 

我缺少什麼?可能是一個愚蠢的問題,但我不能爲我的生活弄清楚這一點。

回答

1

一切看起來不錯,它看起來像你需要改變你使用path

不使用h2o.save_model創建的目錄,而是使用您知道存在的目錄以及您知道其路徑的目錄。作爲第一個測試,你可以只保存到桌面上,例如使用

h2o.download_pojo(model_rf, path = '/Users/your_user_name/Desktop/', get_jar = True) 

,你需要更換your_user_name(這是假設你使用的是Mac)

這裏是你可以從頭開始嘗試一個例子(關機水先用h2o.cluster().shutdown()

 import h2o 
    h2o.init() 
    iris_df = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/iris/iris.csv") 
    from h2o.estimators.glm import H2OGeneralizedLinearEstimator 
    predictors = iris_df.columns[0:4] 
    response_col = "C5" 
    train,valid,test = iris_df.split_frame([.7,.15], seed =1234) 
    glm_model = H2OGeneralizedLinearEstimator(family="multinomial") 
    glm_model.train(predictors, response_col, training_frame = train, validation_frame = valid) 
    h2o.download_pojo(glm_model, path = '/Users/your_user_name/Desktop/', get_jar = True) 
再次

,你需要更換your_user_name(這是假設你使用的是Mac)

(可能發生了什麼情況:它看起來像是您第一次將H2O模型保存到磁盤時使用h2o.save_model在您運行原始h2o羣集的位置創建了一個目錄(檢查您是否從不同位置連接到h2o羣集)並且第二次嘗試使用download_pojo保存模型時,它會查看當前的目錄,並看到'pojo_test2'在那裏不存在。

當您運行h2o.save_model時,它將打印出創建新目錄的完整路徑。查看該路徑是否與當前目錄相同。