“错误参数(训练数据必须是浮点矩阵)”错误

我正在开发一个图像分类器。我提取了pca特征。我的样本代码是

for file in listing1:  img = cv2.imread(path1 + file)  res=cv2.resize(img,(250,250))  gray_image = cv2.cvtColor(res, cv2.COLOR_BGR2GRAY)  xarr=np.squeeze(np.array(gray_image).astype(np.float32))  m,v=cv2.PCACompute(xarr)  training_set.append(v)  training_labels.append(1)trainData=np.float32(np.float32(xi) for xi in training_set)responses=np.float32(training_labels)svm = cv2.SVM()svm.train(trainData,responses, params=svm_params)svm.save('svm_data.dat')

但是在训练过程中我遇到了这个错误:

OpenCV 错误:错误参数(训练数据必须是浮点矩阵)在 cvCheckTrainData,文件 ..\..\..\..\opencv\modules\ml\src\inner_functions.cpp,第857行


回答:

解决方案 这对我有用你需要将其转换为 np 数组,并需要将该数组展平。

for file in listing1: img = cv2.imread(path1 + file) res=cv2.resize(img,(250,250)) gray_image = cv2.cvtColor(res, cv2.COLOR_BGR2GRAY) xarr=np.squeeze(np.array(gray_image).astype(np.float32)) m,v=cv2.PCACompute(xarr) arr= np.array(v) flat_arr= arr.ravel() training_set.append(flat_arr) training_labels.append(1)

训练

trainData=np.float32(training_set)responses=np.float32(training_labels)svm = cv2.SVM()svm.train(trainData,responses, params=svm_params)svm.save('svm_data.dat')

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注