将H2O模型导入Python

将H2O模型导入Python,python,model,h2o,Python,Model,H2o,我有内置H2O的模型(比如GLM模型) 现在,我想用Python导入该模型以用于其他应用程序 我该怎么做?您需要将模型导出为MOJO或POJO(如果您的算法支持,请选择MOJO)。这是一个Java对象,因此需要使用Java来运行它。有很多方法可供选择: (顺便说一句,R API最近添加了h2o.predict_json(),它为您将参数转换为json和Java调用;Python API中似乎还没有任何内容,但如果您阅读,您会发现它没有做任何复杂的事情:只是运行一个shell命令。) 另一种选择

我有内置H2O的模型(比如GLM模型) 现在,我想用Python导入该模型以用于其他应用程序


我该怎么做?

您需要将模型导出为MOJO或POJO(如果您的算法支持,请选择MOJO)。这是一个Java对象,因此需要使用Java来运行它。有很多方法可供选择:

(顺便说一句,R API最近添加了h2o.predict_json(),它为您将参数转换为json和Java调用;Python API中似乎还没有任何内容,但如果您阅读,您会发现它没有做任何复杂的事情:只是运行一个shell命令。)

另一种选择是坚持运行H2O服务器,并从Python使用它。在这种情况下,您只需保存模型(二进制格式),然后在每次进行预测时将其加载(返回H2O集群):

这种方法的缺点是二进制格式总是绑定到H2O版本。因此,如果升级H2O,则无法再使用保存的型号。

请尝试以下操作:

# build the model
model = H2ODeepLearningEstimator(params)
model.train(params)

# save the model
model_path = h2o.save_model(model=model, path="/tmp/mymodel", force=True)

print(model_path)
/tmp/mymodel/DeepLearning_model_python_1441838096933

# load the model
saved_model = h2o.load_model(model_path)

较新版本的H2O能够通过python API导入MOJO:

# re-import saved MOJO
imported_model = h2o.import_mojo(path)

new_observations = h2o.import_file(path='new_observations.csv')
predictions = imported_model.predict(new_observations)
注意:旧版本的H2O中不能将MOJO重新导入python,因为旧版本缺少
H2O.import\u MOJO()
函数


因此
h2o.save_model()
似乎已经失去了它的作用-我们可以只使用
my_model.save_mojo()
(注意它不是
h2o
方法,而是model对象的属性),因为这些文件不仅可以用于Java应用程序部署,也可以用于python(事实上,他们仍然在内部使用python Java桥接器)。

欢迎来到StackOverflow!请阅读和的相关信息。这将使其他人更容易帮助您。您是否阅读了文档?您是否试图根据生成的模型文件预测@hari krishna的可能副本?