无需H2O集群在树莓派2上运行H2O MOJO模型求助
无集群运行H2O MOJO模型的实用方案
一、Java 原生调用(适配所有模型类型)
你之前遇到的「缺失主类」问题,是因为没有使用h2o-genmodel.jar内置的正确主类,这个Jar包本身就包含了无集群运行MOJO的所有逻辑,无需启动H2O集群。
批量CSV处理命令:
# 限制JVM内存适配树莓派2硬件,按需调整-Xmx参数 java -Xmx512m -cp h2o-genmodel.jar hex.genmodel.tools.PredictCsv \ --mojo /path/to/your_model.zip \ --input /path/to/input.csv \ --output /path/to/output.csv- 分类任务可添加
--predictions-col Prediction指定预测结果列名;回归任务无需额外参数。 - StackedEnsemble模型无需特殊处理,其MOZip包已包含所有子模型依赖,直接用上述命令即可。
- 分类任务可添加
单条数据预测:
java -cp h2o-genmodel.jar hex.genmodel.tools.Predict \ --mojo your_model.zip \ --row "1.2,3.4,5.6,..." # 按模型特征顺序传入数据
二、Python 轻量调用(无需集群)
如果更偏好Python生态,使用h2o-genmodel的Python绑定,完全脱离H2O集群运行:
安装依赖:
树莓派ARM架构下优先用pip安装,若官方包不兼容则从源码编译:# 优先尝试官方包 pip install h2o-genmodel # 官方包不兼容时编译源码 git clone https://github.com/h2oai/h2o-genmodel.git cd h2o-genmodel/python && python setup.py install通用预测代码(适配所有模型与任务类型):
import h2o.genmodel as h2o_gnm import pandas as pd # 加载MOJO模型 model = h2o_gnm.Model.load("/path/to/your_model.zip") # 读取输入数据(转为DataFrame即可,支持CSV/Excel等格式) input_df = pd.read_csv("/path/to/input.csv") # 生成预测结果 pred_results = model.predict(input_df) # 保存结果到CSV pred_results.to_csv("/path/to/output.csv", index=False)这个方案启动速度极快,完全不需要H2O集群资源,适配深度学习、XGBoost、GBM、StackedEnsemble等所有模型类型,以及回归、二分类、多分类任务。
三、开机常驻优化(可选)
如果需要长期提供预测服务,可以将脚本注册为systemd服务,实现开机自启与异常重启:
创建服务文件
/etc/systemd/system/h2o-mojo-pred.service:[Unit] Description=H2O MOJO Prediction Service After=network.target [Service] User=pi WorkingDirectory=/home/pi/mojo_workspace ExecStart=/usr/bin/python3 /home/pi/mojo_workspace/predict_service.py Restart=always RestartSec=10 # 限制内存,适配树莓派2 MemoryMax=512M [Install] WantedBy=multi-user.target启用服务:
sudo systemctl daemon-reload sudo systemctl start h2o-mojo-pred.service sudo systemctl enable h2o-mojo-pred.service
内容的提问来源于stack exchange,提问作者lvfmc85
相关产品推荐
相关产品推荐

