Weka类无法反序列化

时间:2012-11-25 22:09:00

标签: deserialization cluster-analysis weka

我在Weka Explorer中训练了一个SimpleKMeans群集器并将模型保存到我的计算机上。现在我想在我的Java代码中使用它来集群我创建的实例,但是当我尝试反序列化它时出现以下错误:

  

java.io.InvalidClassException:weka.core.Instance; weka.core.Instance;   对于反序列化,类无效   java.io.Object.StreamClass.checkDeserialize(未知来源)at   java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)at   java.io.ObjectInputStream.readObject0(未知来源)at   java.io.ObjectInputStream.readArray(未知来源)at   java.io.ObjectInputStream.readObject0(未知来源)at   java.io.ObjectInputStream.defaultReadFields(未知来源)at   java.io.ObjectInputStream.readSerialData(未知来源)at   java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)at   java.io.ObjectInputStream.readObject0(未知来源)at   java.io.ObjectInputStream.defaultReadFields(未知来源)at   java.io.ObjectInputStream.readSerialData(未知来源)at   java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)at   java.io.ObjectInputStream.readObject0(未知来源)at   java.io.ObjectInputStream.defaultReadFields(未知来源)at   java.io.ObjectInputStream.readSerialData(未知来源)at   java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)at   java.io.ObjectInputStream.readObject0(未知来源)at   java.io.ObjectInputStream.readObject(未知来源)at   weka.core.SerializationHelper.read(SerializationHelper.java:288)at   weka.core.SerializationHelper.read(SerializationHelper.java:270)at   Test.main(Test.java:32)

我的Test类的第32行是

Clusterer kmeans_temp = (Clusterer) weka.core.SerializationHelper.read("path/to/model/myclusterermodel.model");

我做得对吗?

1 个答案:

答案 0 :(得分:4)

问题是因为我使用两个不同版本的WEKA来创建模型并反序列化模型。我下载了用于WEKA资源管理器的版本的源代码,问题解决了。