如何使用 Python 从 H2O 生成和保存 POJO
How to generate and save POJO from H2O using Python
我使用 Python 在 H2O 中创建了一个模型。我想生成该模型的 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'
我错过了什么?可能是一个愚蠢的问题,但我无法终生解决这个问题。
一切正常,只是看起来您需要更改您使用的 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()
关闭 h2o
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.save_model
将 H2O 模型保存到磁盘时,在您 运行 建立原始 h2o 集群的位置创建了一个目录(检查您是否从不同位置连接到 h2o 集群),第二次尝试使用 download_pojo
保存模型时,它查看了您当前的目录,发现 'pojo_test2' 不存在。
当您 运行 h2o.save_model
时,它将打印出创建新目录的完整路径。查看该路径是否与您当前的目录相同。
我使用 Python 在 H2O 中创建了一个模型。我想生成该模型的 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'
我错过了什么?可能是一个愚蠢的问题,但我无法终生解决这个问题。
一切正常,只是看起来您需要更改您使用的 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.save_model
将 H2O 模型保存到磁盘时,在您 运行 建立原始 h2o 集群的位置创建了一个目录(检查您是否从不同位置连接到 h2o 集群),第二次尝试使用 download_pojo
保存模型时,它查看了您当前的目录,发现 'pojo_test2' 不存在。
当您 运行 h2o.save_model
时,它将打印出创建新目录的完整路径。查看该路径是否与您当前的目录相同。