[英]Import H2O model to Python
我在 H2O 中构建了模型(例如 GLM 模型)现在,我想在 Python 中导入该模型以用于其他应用程序。
我该怎么做?
试试这个:
# 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)
您需要将模型导出为 MOJO 或 POJO(如果您的算法支持,则首选 MOJO)。 这是一个 Java 对象,因此您需要使用 Java 来运行它。 如何做到这一点有很多选择:
http://docs.h2o.ai/h2o/latest-stable/h2o-docs/productionizing.html
(顺便说一句,R API 最近添加了 h2o.predict_json() 它将参数转换为 JSON 并为您调用 Java;Python API 中似乎还没有任何内容,但是如果您阅读R 代码,您会看到它没有做任何复杂的事情:只是运行一个 shell 命令。)
另一种选择是坚持运行 H2O 服务器,并从 Python 中使用它。 在这种情况下,您只想保存模型(二进制格式),然后在每次要进行预测时将其加载(回到 H2O 集群中): http : //docs.h2o.ai/h2o/最新稳定/h2o-docs/save-and-load-model.html
这种方法的缺点是二进制格式总是与 H2O 版本相关联。 因此,如果您升级 H2O,您将无法再使用您保存的模型。
较新版本的 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)
注意:MOJO 不能在旧的 H2O 版本中重新导入 python,它缺少h2o.import_mojo()
函数。
所以h2o.save_model()
似乎失去了它的作用——我们可以只使用my_model.save_mojo()
(注意它不是一个h2o
方法,而是模型对象的一个属性),因为这些文件不仅可以用于 Java 应用程序部署,但也在 python 中(实际上他们仍然在内部使用 python-Java 桥)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.