2017-04-03 3 views
0

機能していないオブジェクト(のpython 2)酸洗cv2.Knearest私は以下のコード.FORファイルにcv2.knearest訓練されたモデルを保存しようとしている

import numpy as np 
import cv2 
from sklearn.datasets import load_digits 
import pickle 
from sklearn.externals import joblib 
samples = np.float32(np.loadtxt('feature_vector_pixels.data')) 
responses = np.float32(np.loadtxt('samples_pixels.data')) 
model = cv2.KNearest() 
model.train(samples, responses) 
# save the model to disk 
filename = 'init_model.sav' 
pickle.dump(model, open(filename, 'wb')) 

私は

Traceback (most recent call last): 
File "picklemake.py", line 14, in <module> 
pickle.dump(model, open(filename, 'wb')) 
File "C:\Users\Karthik\Anaconda3\envs\py27\lib\pickle.py", line 1376, in dump 
Pickler(file, protocol).dump(obj) 
File "C:\Users\Karthik\Anaconda3\envs\py27\lib\pickle.py", line 224, in dump 
self.save(obj) 
File "C:\Users\Karthik\Anaconda3\envs\py27\lib\pickle.py", line 306, in save 
rv = reduce(self.proto) 
File "C:\Users\Karthik\Anaconda3\envs\py27\lib\copy_reg.py", line 70, in _reduce_ex 
raise TypeError, "can't pickle %s objects" % base.__name__ 
TypeError: can't pickle KNearest objects 

があります取得しますこのモデルをファイルに保存する選択肢があります。また model.saveを使用してオン

は、私がOpenCV Error: The function/feature is not implemented() in CvStatModel::write, file ..\..\..\modules\ml\src\inner_functions.cpp

答えて

1

バディは、次回ドキュメントを読んでもらいます。

KnearestCvStatModelです。後者は、あなたがしたいことをまったく実行する2つのオーバーロードのsave(...)メソッドを持っています。

正確な理由はわかりませんが、C(++)ライブラリでPythonラッパーを使用している場合、そのクラスは通常pickle'ableではありません。

+0

私は 'OpenCV Error:CvStatModel :: write、file .. \ .. \ .. \ modules \ ml \ src \ inner_functions.cpp'に関数/機能が実装されていません –

+0

それでは悪いです。私はレコードの答えを残していますが、無駄です。私はあなたを助ける方法を知らない。ところで、この情報を元の質問に追加すると、回答が得られる可能性が高くなります。 –

関連する問題