Python 基于加载模型的预测|分布异常

Python 基于加载模型的预测|分布异常,python,h2o,Python,H2o,这可能有一个明显的解决方案,因为我们是H2O平台的新手,尽管我们无法找到任何结论性信息 我们正在通过Python保存(H2O XGBoost)模型: h2o.save_model(model=model, path=/path/to/our/models, force=True) 然后随后加载我们的模型(如果重要的话,在干净地启动服务器后加载): 从这里看,模型看起来不错,并加载到流UI中 我们加载预测帧: pf = h2o.H2OFrame(python_obj=data_list, des

这可能有一个明显的解决方案,因为我们是H2O平台的新手,尽管我们无法找到任何结论性信息

我们正在通过Python保存(H2O XGBoost)模型:

h2o.save_model(model=model, path=/path/to/our/models, force=True)
然后随后加载我们的模型(如果重要的话,在干净地启动服务器后加载):

从这里看,模型看起来不错,并加载到流UI中

我们加载预测帧:

pf = h2o.H2OFrame(python_obj=data_list, destination_frame='PREDICTION_FRAME', header=-1)
我们尝试根据刚刚加载的预测帧进行预测:

model.predict(pf)
错误消息(流UI和Python中的结果相同):

如果我们不加载保存的模型,而只是动态构建它,那么预测在同一预测帧上可以正常工作。所以,这似乎与使用保存的模型有关

我最初的想法是,用于训练和验证相关模型的框架需要存在,因此我导出了这些框架,并将其与保存的模型一起导入,但收到了相同的错误

一些相关信息:

python --version
Python 2.7.12

H2O Build git branch    master
H2O Build git hash  7cb70c6a5909257868f72f87da27c07670837f09
H2O Build git describe  jenkins-master-4171-1-g7cb70c6-dirty
H2O Build project version   3.17.0.99999
H2O Build age   8 days
H2O Built by    root
H2O Built on    2018-01-13 13:26:13
H2O Internal Security   Disabled
Flow version    0.7.12

getCloud
56ms    
H2O_from_python_root_e9226d
CLOUD STATUS
HEALTHY CONSENSUS LOCKED
Version Started Nodes (Used / All)
3.17.0.99999    a few seconds ago   1 / 1
NODES
Show advanced
    Name    Ping    Cores   Load    My CPU %    Sys CPU %   GFLOPS  Memory Bandwidth    Data (Used/Total)   Data (% Cached) GC (Free / Total / Max) Disk (Free / Max)   Disk (% Free)
127.0.0.1:54321 a few seconds ago   24  0.080   5   5   NaN - / s   - / NaN undefined   NaN%    17.76 GB / NaN undefined / 17.78 GB 53.26 GB / 109.88 GB    48%
TOTAL   -   24  0.080   -   -   NaN - / s   - / NaN undefined   NaN%    17.76 GB / NaN undefined / 17.78 GB 53.26 GB / 109.88 GB    48%
如果您有任何建议或指导,我们将不胜感激。

这是H2O中XGBoost型号的一个问题,目前计划在H2O的下一个主要版本v3.18中修复(已经有一个带有修复程序的版本)。它不影响H2O中任何其他类型的模型

ERROR MESSAGE:

DistributedException from /127.0.0.1:54321: 'null'

 (water.util.DistributedException)
  DistributedException from /127.0.0.1:54321: 'null', caused by java.lang.NullPointerException
      water.MRTask.getResult(MRTask.java:478)
      water.MRTask.getResult(MRTask.java:486)
      water.MRTask.doAll(MRTask.java:390)
      water.MRTask.doAll(MRTask.java:396)
      hex.Model.predictScoreImpl(Model.java:1280)
      hex.Model.score(Model.java:1145)
      water.api.ModelMetricsHandler.predict(ModelMetricsHandler.java:420)
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      java.lang.reflect.Method.invoke(Method.java:498)
      water.api.Handler.handle(Handler.java:63)
      water.api.RequestServer.serve(RequestServer.java:451)
      water.api.RequestServer.doGeneric(RequestServer.java:296)
      water.api.RequestServer.doPost(RequestServer.java:222)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
      org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
      org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)
      org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
      org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
      org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
      org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
      org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
      org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
  Caused by:java.lang.NullPointerException
      hex.tree.xgboost.XGBoostModel.score0(XGBoostModel.java:462)
      hex.Model.score0(Model.java:1432)
      hex.Model$BigScore.map(Model.java:1377)
      water.MRTask.compute2(MRTask.java:657)
      water.H2O$H2OCountedCompleter.compute1(H2O.java:1266)
      hex.Model$BigScore$Icer.compute1(Model$BigScore$Icer.java)
      water.H2O$H2OCountedCompleter.compute(H2O.java:1262)
      jsr166y.CountedCompleter.exec(CountedCompleter.java:468)
      jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:263)
      jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:974)
      jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1477)
      jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)
python --version
Python 2.7.12

H2O Build git branch    master
H2O Build git hash  7cb70c6a5909257868f72f87da27c07670837f09
H2O Build git describe  jenkins-master-4171-1-g7cb70c6-dirty
H2O Build project version   3.17.0.99999
H2O Build age   8 days
H2O Built by    root
H2O Built on    2018-01-13 13:26:13
H2O Internal Security   Disabled
Flow version    0.7.12

getCloud
56ms    
H2O_from_python_root_e9226d
CLOUD STATUS
HEALTHY CONSENSUS LOCKED
Version Started Nodes (Used / All)
3.17.0.99999    a few seconds ago   1 / 1
NODES
Show advanced
    Name    Ping    Cores   Load    My CPU %    Sys CPU %   GFLOPS  Memory Bandwidth    Data (Used/Total)   Data (% Cached) GC (Free / Total / Max) Disk (Free / Max)   Disk (% Free)
127.0.0.1:54321 a few seconds ago   24  0.080   5   5   NaN - / s   - / NaN undefined   NaN%    17.76 GB / NaN undefined / 17.78 GB 53.26 GB / 109.88 GB    48%
TOTAL   -   24  0.080   -   -   NaN - / s   - / NaN undefined   NaN%    17.76 GB / NaN undefined / 17.78 GB 53.26 GB / 109.88 GB    48%