2016-08-24 10 views
0

У меня есть модель, созданная в H2O с использованием Python. Я хочу создать POJO этой модели и сохранить ее.Как сгенерировать и сохранить POJO из H2O с помощью Python

Скажите, что моя модель называется 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 первый с 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 он распечатает полный путь туда, где он создал новый каталог. Посмотрите, совпадает ли этот путь с вашим текущим каталогом.