如何反序列化Android版Weka中保存的模型

如何反序列化Android版Weka中保存的模型,android,weka,random-forest,Android,Weka,Random Forest,我在从SD卡加载保存的模型时遇到问题。 在Weka的官方wiki中,我发现了两种反序列化序列化模型的方法,但没有一种在Android上有效 //First Method RandomForest rf = (RandomForest) weka.core.SerializationHelper. read(Environment.getExternalStorageDirectory().getPath() + "/BC.model"); //Second Method ObjectI

我在从SD卡加载保存的模型时遇到问题。 在Weka的官方wiki中,我发现了两种反序列化序列化模型的方法,但没有一种在Android上有效

//First Method
RandomForest rf = (RandomForest) weka.core.SerializationHelper.
    read(Environment.getExternalStorageDirectory().getPath() + "/BC.model");

//Second Method
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
    Environment.getExternalStorageDirectory().getPath() + "/BC.model"));
RandomForest rf = new RandomForest();
rf = (RandomForest) ois.readObject();
我在logcat中得到这个错误:

java.io.InvalidClassException: 
    weka.classifiers.trees.RandomForest; Incompatible class (SUID): 
    weka.classifiers.trees.RandomForest
您可能希望将模型放在“资源”文件夹中。请让我知道它是否有效


您可能希望将模型放在“资源”文件夹中。请告诉我它是否有效。

在android中,您只能加载由android应用程序序列化的分类器模型。否则,由于不兼容的可序列化UID,您将获得异常

在android中,您只能加载由android应用程序序列化的分类器模型。否则,由于不兼容的可序列化UID,您将获得异常

感谢Henry的回复:)问题不在于我是否找到了模型文件,我认为问题在于将ios.readObect强制转换为RandomForest。我尝试将其放入资产中,但没有任何更改。感谢Henry的回复:)问题不在于我是否找到模型文件,我认为问题在于将ios.readObect强制转换为RandomForest。我试着把它投入资产,但没有任何改变。
        InputStream is = this.getAssets().open("example.model");
        ObjectInputStream ois = new ObjectInputStream(is);
        cls = (Classifier) ois.readObject();
        ois.close();