我正在尝试编写Java包装器以使用我的h2o mojo模型。当我加载模型zip文件时,会收到一个空指针异常。下面是我的代码示例:
public static void main(String[] args) throws Exception {
EasyPredictModelWrapper predict_model = new EasyPredictModelWrapper(
MojoModel.load("prediction_football_model.zip"));
EasyPredictModelWrapper class_model = new EasyPredictModelWrapper(
MojoModel.load("classification_football_model.zip"));
}
和错误消息:
Exception in thread "main" java.lang.NullPointerException: entry
at java.util.zip.ZipFile.getInputStream(ZipFile.java:346)
at hex.genmodel.ZipfileMojoReaderBackend.getTextFile(ZipfileMojoReaderBackend.java:18)
at hex.genmodel.ModelMojoReader.parseModelInfo(ModelMojoReader.java:154)
at hex.genmodel.ModelMojoReader.readFrom(ModelMojoReader.java:27)
at hex.genmodel.MojoModel.load(MojoModel.java:35)
at GamePrediction.main(GamePrediction.java:52)
我一直在eclipse中处理此代码,并将两个zip文件都放在主项目文件夹中。我使用h2o.download_mojo()函数在R中创建了模型。我查看了错误消息,发现给定路径的ZipEntry为Null,但是找不到解决方案。
任何帮助或见解都会有所帮助。我找不到其他类似的问题,因此,如果这是重复的问题,请指出正确的方向!
答案 0 :(得分:0)
我遇到了同样的错误并已解决。
就我而言,mojo 运行时文件有问题。我使用的是 1.8.1.1,并且在该版本的时候发现了一个错误。我只是用最新的文件替换了该文件。然后一切都像魅力一样。
这是文件的链接。请注意,这对您来说可能不是最新的。 https://s3.amazonaws.com/artifacts.h2o.ai/releases/ai/h2o/mojo2-runtime/2.5.9/any/mojo2-runtime-2.5.9-all.jar