首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载模型上的Java libSVM NullPointerException

加载模型上的Java libSVM NullPointerException
EN

Stack Overflow用户
提问于 2016-12-05 17:41:32
回答 1查看 79关注 0票数 0

我一直在一个Java项目中使用libSVM,在对一个相当大的数据集进行培训之后,使用api中的函数将模型保存到一个文件中。后来,我尝试加载文件来做一些预测,但是每次调用svm.svm_predict函数时,我都会得到一个svm.svm_predict。我可以验证代码是否适用于一个较小的模型文件,但是对于这个更大的集合,代码总是失败的。以下是完整的错误消息:

代码语言:javascript
复制
Exception in thread "main" java.lang.NullPointerException
    at libsvm.Kernel.dot(svm.java:213)
    at libsvm.Kernel.k_function(svm.java:232)
    at libsvm.svm.svm_predict_values(svm.java:2349)
    at libsvm.svm.svm_predict(svm.java:2406)
    at com.svm.SVM.predict(...)
    at com.svm.SVM.main(...)

奇怪的是,我可以打印出概率并访问支持向量机的其他元素--该模型不为空;然而,每当我试图预测给定向量的结果时,它就会崩溃。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-05 18:17:10

测试数据必须包含向量中每个部分的数据。也就是说,如果最大的训练样本与向量有105个部分,那么每个测试向量必须有105个部分。即使您只拥有给定测试向量的15个部分,您也需要用其他90个元素填充它。如果不分配适当大小的数组,libSVM将尝试访问给定用于预测的测试数据数组之外的元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40980154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档