简体   繁体   English

OpenCV3 Python,svm.train()TypeError

[英]OpenCV3 Python, svm.train() TypeError

When I use Opencv3 with Python2, my code is to do something with SVM. 当我使用Opencv3和Python2时,我的代码是用SVM做的。

But an Error is shown: 但是显示错误:

svm.train(trainData,responses,params = svm_params) TypeError: only length-1 arrays can be converted to Python scalars svm.train(trainData,responses,params = svm_params)TypeError:只有length-1数组可以转换为Python标量

This error occurred because the function was expecting a single array object and trainData variable contained multiple array objects. 发生此错误是因为函数期望单个数组对象和trainData变量包含多个数组对象。 There are several ways to solve this, one of them is, say if your input object is: 有几种方法可以解决这个问题,其中一种方法是,输入对象是:

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

then add [np.newaxis] to it 然后添加[np.newaxis]

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

See: numpy newaxis , numpy broadcasting 请参阅: numpy newaxisnumpy broadcast

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM