2016-08-12 3 views
1

私はPython2でOpencv3を使用するとき、私のコードはSVMで何かをすることです。OpenCV3 Python、svm.train()TypeError

が、エラーが示されている:

svm.train(trainData,responses,params = svm_params) TypeError: only length-1 arrays can be converted to Python scalars

答えて

0

機能は、単一の配列オブジェクトを期待し、trainData変数が複数配列オブジェクトを含んでいたため、このエラーが発生しました。そこにこれを解決するには、いくつかの方法であり、そのうちの一つがあり、あなたの入力オブジェクトがある場合は言う:numpy newaxisnumpy broadcasting

# Used for creating training samples for a logic gate (eg: xor) NN 
trainData = np.random.randint(2,size=2) 
# array([ ..some values.. ]) 

それに[np.newaxis]

np.random.randint(2,size=2)[np.newaxis] 
# array([[ ..some values.. ]]) 

参照を追加します

+0

あなたの返事のためのタンク。しかし、私のtrainDataは次のようになっています: deskewed = [train_cellsの行のためのマップ(デスキュー、行)] hogdata = [スキューアップした行のマップのhog、row] trainData = np.float32(hogdata).reshape -1,64) 応答= np.float32(np.repeat(np.arange(10)、250)[:, np.newaxis]) 問題はまだ終了しています。この問題を解決するのに手伝ってもらえますか? –

+0

これは参考になる別の回答です: http://stackoverflow.com/questions/36110924/how-can-i-format-my-list-to-give-it-as-input-to-svm-train -in-opencv3-0 –

関連する問題