【发布时间】:2019-05-10 23:21:09
【问题描述】:
我正在使用 openCV 进行微笑识别,我编写了代码并到达下面的命令行:
def test_recognition(c1, c2):
subplot(121)
extracted_face1 = extract_face_features(gray1, face1[0], (c1, c2))
imshow(extracted_face1, cmap='gray')
print(predict_face_is_smiling(extracted_face1))
subplot(122)
extracted_face2 = extract_face_features(gray2, face2[0], (c1, c2))
imshow(extracted_face2, cmap='gray')
print(predict_face_is_smiling(extracted_face2))
然后当我运行下面的代码时:
interact(test_recognition,
c1=(0.0, 0.3, 0.01),
c2=(0.0, 0.3, 0.01))
它给了我这个错误:
ValueError Traceback(最近调用 最后)~\Anaconda3\lib\site-packages\ipywidgets\widgets\interaction.py 在更新中(自我,* args) 249 价值 = 小部件.get_interact_value() 250 self.kwargs[widget._kwarg] = 价值 --> 251 self.result = self.f(**self.kwargs) 第252章 253 如果 self.auto_display 和 self.result 不是 None:
在 test_recognition(c1, c2) 3 extract_face1 = extract_face_features(gray1, face1[0], (c1, c2)) 4 imshow(extracted_face1,cmap='灰色') ----> 5 print(predict_face_is_smiling(extracted_face1)) 6 次情节(122) 7 extract_face2 = extract_face_features(gray2, face2[0], (c1, c2))
在 predict_face_is_smiling(extracted_face) 1 def predict_face_is_smiling(extracted_face): ----> 2 return svc_1.predict(extracted_face.ravel())
~\Anaconda3\lib\site-packages\sklearn\svm\base.py in predict(self, X) X 中样本的 574 个类别标签。 第575章 --> 576 y = super(BaseSVC, self).predict(X) 第577章 第578章
~\Anaconda3\lib\site-packages\sklearn\svm\base.py in predict(self, X) 323 y_pred:数组,形状(n_samples,) 第324章 --> 325 X = self._validate_for_predict(X) 326 predict = self._sparse_predict if self._sparse else self._dense_predict 327 返回预测(X)
~\Anaconda3\lib\site-packages\sklearn\svm\base.py 在 _validate_for_predict(自我,X) 456 第457章, --> 458 接受大稀疏=假) 459 如果 self._sparse 而不是 sp.isspmatrix(X): 460 X = sp.csr_matrix(X)
~\Anaconda3\lib\site-packages\sklearn\utils\validation.py 在 check_array(数组,accept_sparse,accept_large_sparse,dtype,顺序, 复制,force_all_finite,ensure_2d,allow_nd,ensure_min_samples, ensure_min_features、warn_on_dtype、估计器) 550 “如果使用 array.reshape(-1, 1) 重塑你的数据” 551 “你的数据有一个单一的特征或 array.reshape(1, -1)” --> 552 "如果它包含单个样本。".format(array)) 553 554 # 未来 np.flexible dtypes 将像 object dtypes 一样处理
ValueError:预期二维数组,得到一维数组:array=[0.33913043 0.36086956 0.4173913 ... 0.52608699 0.56956524 0.53913045]。如果您的数据只有一个,请使用 array.reshape(-1, 1) 重塑您的数据 如果包含单个样本,则为 feature 或 array.reshape(1, -1)。
关于如何解决此问题的任何提示?
提前致谢
【问题讨论】:
标签: python python-3.x opencv machine-learning jupyter-notebook