Reputation: 6526
I trained a SimpleKMeans clusterer in Weka Explorer and saved the model to my computer. Now I want to use it in my Java code to cluster an instance I create but I get the following error when I try to deserialize it:
java.io.InvalidClassException: weka.core.Instance; weka.core.Instance; class invalid for deserialization at java.io.ObjectStreamClass.checkDeserialize(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readArray(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.defaultReadFields(Unknown Source) at java.io.ObjectInputStream.readSerialData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.defaultReadFields(Unknown Source) at java.io.ObjectInputStream.readSerialData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.defaultReadFields(Unknown Source) at java.io.ObjectInputStream.readSerialData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at weka.core.SerializationHelper.read(SerializationHelper.java:288) at weka.core.SerializationHelper.read(SerializationHelper.java:270) at Test.main(Test.java:32)
where line 32 of my Test class is
Clusterer kmeans_temp = (Clusterer) weka.core.SerializationHelper.read("path/to/model/myclusterermodel.model");
Am I doing it right?
Upvotes: 1
Views: 1029
Reputation: 6526
The problem was because I was using two different versions of WEKA to create the model and deserialize the model. I downloaded the source code for the version I used for WEKA explorer and problem solved.
Upvotes: 4