def loadSVM(pickled_svm_filename, C, labels): """Loads a Shogun SVM object which was pickled by saveSVM""" from cPickle import Unpickler, PickleError from shogun.Kernel import CombinedKernel pickle_file = open(pickled_svm_filename, 'rb') unpck = Unpickler(pickle_file) (version, num_sv, name, bias, alphas, svs) = unpck.load() if (version == __version__): svm = LibSVM(num_sv) # same as .create_new_model(num_sv) svm.set_bias(bias) svm.set_alphas(alphas) svm.set_support_vectors(svs) kernel = CombinedKernel() #not sure if this is even required kernel.set_name(name) # maybe not required svm.set_kernel(kernel) else: print "File was pickled by another version of EasySVM.py or is not a kernel:" print "Received from ", pickled_svm_filename, ": ", version, " expected: ", __version__ raise PickleError return svm