gpt4 book ai didi

java - Weka模型在android中读取错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:42:49 25 4
gpt4 key购买 nike

我在机器上创建了我的 weka 模型并将其导入到 android 项目中。当我尝试创建分类器时,当我尝试反序列化我创建的模型时,它会给出错误“exception.java.io.StreamCorruptedException”。该代码在机器上完美运行。

这是我的代码,

InputStream fis = null;

fis = new InputStream("/modle.model");

InputStream is = fis;

Classifier cls = null;

//here im getting the error when trying to read the Classifier
cls = (Classifier) SerializationHelper.read(is);

FileInputStream datais = null;

datais = new FileInputStream("/storage/emulated/0/window.arff");


InputStream dataIns = datais;
DataSource source = new DataSource(dataIns);
Instances data = null;
try {
data = source.getDataSet();
} catch (Exception e) {
e.printStackTrace();
}
data.setClassIndex(data.numAttributes() - 1);

Instance in = new Instance(13);
in.setDataset(data);
in.setValue(0, testWekaModle1[0]);
in.setValue(1, testWekaModle1[1]);
in.setValue(2, testWekaModle1[2]);
in.setValue(3, testWekaModle1[3]);
in.setValue(4, testWekaModle1[4]);
in.setValue(5, testWekaModle1[5]);
in.setValue(6, testWekaModle1[6]);
in.setValue(7, testWekaModle1[7]);
in.setValue(8, testWekaModle1[8]);
in.setValue(9, testWekaModle1[9]);
in.setValue(10, testWekaModle1[10]);
in.setValue(11, testWekaModle1[11]);

double value = 0;

value = cls.classifyInstance(in);

in.setClassValue(value);

这是完整的堆栈跟踪,

java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:2109)
java.io.ObjectInputStream.<init>(ObjectInputStream.java:372)
weka.core.SerializationHelper.read(SerializationHelper.java:288)
info.androidhive.sleepApp.model.ControllerWeka.wekaModle(ControllerWeka.java:81)
info.androidhive.sleepApp.activity.HomeFragment.extract(HomeFragment.java:278)
info.androidhive.sleepApp.activity.HomeFragment.stop(HomeFragment.java:146)
"info.androidhive.sleepApp.activity.HomeFragment$2.onClick(HomeFragment.java:107)"
android.view.View.performClick(View.java:4475)"
android.view.View$PerformClick.run(View.java:18786)"
android.os.Handler.handleCallback(Handler.java:730)"
dalvik.system.NativeStart.main(Native Method)"
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)"
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)"
java.lang.reflect.Method.invoke(Method.java:525)"
java.lang.reflect.Method.invokeNative(Native Method)"
android.app.ActivityThread.main(ActivityThread.java:5419)"
android.os.Looper.loop(Looper.java:137)"
android.os.Handler.dispatchMessage(Handler.java:92)"

请帮我解决这个问题。

最佳答案

这已解决,该模型是在不同的环境(PC)中创建的,并尝试在 android 环境中反序列化,但由于两种类型的 JDK 完全不同,因此出现错误。

关于java - Weka模型在android中读取错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35455903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com