我用Python中的Opencv编写了一个使用SVM训练特定数据集的代码(这只是整个代码的一部分)。在
svm_params = dict( kernel_type = cv2.ml.SVM_LINEAR ,svm_type = cv2.ml.SVM_C_SVC,C=2.67, gamma=3 )
svm = cv2.ml.SVM_create()
trainingData,labels = getTrainingData()
svm.train(trainingData, labels, params=svm_params)
svm.save('svm_data.dat')
trainingData和labels分别是特性和响应的列表。 当我试图运行代码时,我得到一个错误,它说:
^{pr2}$然后我试图将训练数据、标签的列表转换成numpy数组。在
这是我将它们转换为numpy数组时的代码:
svm_params = dict( kernel_type = cv2.ml.SVM_LINEAR ,svm_type = cv2.ml.SVM_C_SVC,C=2.67, gamma=3 )
svm = cv2.ml.SVM_create()
trainingData,labels = getTrainingData()
trainData = np.asarray(trainingData)
responses = np.asarray(labels)
svm.train(trainData, responses, params=svm_params)
svm.save('svm_data.dat')
然后它给出了另一个错误:
Traceback (most recent call last):
File "C:\Python27\Python\fc.py", line 155, in <module>
svm.train(trainData, responses, params=svm_params)
TypeError: only length-1 arrays can be converted to Python scalars
训练数据和标签是特征及其相应的响应。我尝试打印培训数据和标签:培训数据的前几行是:
[0, 300, 866, 214, 120, 38] [[0, 140, 1620, 276, 162, 18], [0, 111, 1085, 207, 132, 12], [0, 102, 570, 174, 102, 10],..
标签:
[[1], [1], [1], [1], [1], [1],...
为了使代码成功地训练数据,我应该做哪些更改?在
目前没有回答
相关问题 更多 >
编程相关推荐