3

この分類器を再度トレーニングすることなく、他のコンピューターで使用したかったのです。cPickle を使用して scikit からいくつかの分類器を保存していました。LIBSVM で同じことを行うと、「 ValueError: ポインターを含む ctypes オブジェクトはピクルできません」というメッセージが表示されます。

私は LibSVM 3.1 と Python 2.7.3 を使用しています。

ありがとう

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
4

1 に答える 1

9

libsvm の load および save 関数を使用するだけです

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

これは、libsvm パッケージの python ディレクトリに含まれている README ファイルからのものです。ウェブサイトよりも機能の説明がはるかに優れているようです。

于 2012-07-14T12:54:04.760 に答える