¿Cómo puedo guardar una instancia de objeto Python LibSVM?

Quería usar este clasificador en otra computadora sin tener que entrenarlo nuevamente. Solía ​​guardar algunos clasificadores de scikit con cPickle. Haciendo lo mismo con LIBSVM me da un “ValueError: los objetos ctypes que contienen punteros no pueden ser decapados”.

Estoy usando LibSVM 3.1 y Python 2.7.3.

Gracias

from libsvm.svm import * from libsvm.svmutil import * import cPickle x = [[1, 0, 1], [-1, 0, -1]] y = [1, -1] prob = svm_problem(y, x) param = svm_parameter() param.kernel_type = LINEAR param.C = 10 m = svm_train(prob, param) labels_pred, acc, probs = svm_predict([-1, 1], [[1, 1, 1], [0, 0, 1]], m) print labels_pred, acc, probs import ipdb; ipdb.set_trace() filename='libsvm-classif.pkl' fid = open(filename, 'wb') cPickle.dump(m, fid) fid.close() fid = open(filename, 'rb') m = cPickle.load(fid) labels_pred, acc, probs = svm_predict([-1, 1], [[1, 1, 1], [0, 0, 1]], m) print labels_pred, acc, probs 

Solo usa las funciones de cargar y guardar de libsvm

 svm_save_model('libsvm.model', m) m = svm_load_model('libsvm.model') 

Esto es del archivo README incluido en el directorio python del paquete libsvm. Parece tener una descripción mucho mejor de las características que el sitio web.