2016-08-24 71 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时,它将打印出创建新目录的完整路径。查看该路径是否与当前目录相同。